tabla de contenido - Pontificia Universidad Javeriana

Anuncio
DISEÑO Y DESARROLLO DE UN CONJUNTO
DE COMPONENTES ENFOCADOS
AL E-LEARNING
MIGUEL ANGEL AVILA CUEVAS
DANIEL HERNANDO REYES
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENERIA
CARRERA DE INGENERIA DE SISTEMAS
BOGOTA D.C.
SEPTIEMBRE DE 2005
DISEÑO Y DESARROLLO DE UN CONJUNTO
DE COMPONENTES ENFOCADOS
AL E-LEARNING
MIGUEL ÁNGEL ÁVILA CUEVAS
DANIEL HERNANDO REYES
Proyecto de grado para optar al titulo de
Ingeniero de Sistemas
Director
MIGUEL EDUARDO TORRES MORENO, MSc
Ingeniero de Sistemas
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENERIA
CARRERA DE INGENERIA DE SISTEMAS
BOGOTA D.C.
SEPTIEMBRE DE 2005
NOTA DE ACEPTACION
________________________________________
________________________________________
________________________________________
________________________________________
_______________________________________
Director del Proyecto
_____________________________________
Jurado
____________________________________
Jurado
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENERÍA
CARRERA DE INGENERÍA DE SISTEMAS
RETOR MAGNIFICO:
R.P. GERERDO REMOLINA VARGAS S.J.
DECANO ACADEMICO
ING. FRANCISCO JAVIER REBOLLEDO MUÑOZ
DECANO DEL MEDIO UNIVERSITARIO
R.P. ANTONIO JOSE SARMIENTO.
DIRECTOR DE CARRERA:
ING. HILDA CRISTINA CHAPARRO LOPEZ
DIRECTOR DE DEPARTAMENTO
ING. GERMAN ALBERTO CHAVARRO FLORES
DIRECTOR DE PROYECTO:
ING MIGUEL EDUARDO TORRES MORENO
ARTICULO 23 DE LA RESOLUCION NO. 01 DE JUNIO DE 1946
“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en los
proyectos de grado.
Solo velará porque no se publique nada contrario al dogma y la moral católica porque no
contengan ataques o polémicas puramente personales. Antes bien, que se vean en ellos el
anhelo de buscar la verdad y la justicia”
¿Por qué esta magnífica tecnología científica, que ahorra trabajo y nos hace la vida más
fácil, nos aporta tan poca felicidad? La repuesta es está, simplemente: porque aún no
hemos aprendido a usarla con tino.
Albert Einstein
AGRADECIMIENTOS
Los autores agradecemos cordialmente a:
Ing Miguel Eduardo Torres Moreno, Director del proyecto, por su apoyo, orientación y
aportes.
Ing. César Julio Bustacara Medina, por su colaboración en el levantamiento de
requerimientos y en la ejecución de pruebas del proyecto.
Ing. José Hernando Hurtado Rojas, por su asesoría y colaboración con el tema de elearning y la plataforma de educación virtual BlackBoard.
Ing. Rafael González, Maribel Ariza, Juan Carlos Molina, Dawid Junco, Rodrigo Fonseca,
todos miembros del grupo de investigación PICS del departamento de Ingeniería de
Sistemas de la Pontificia Universidad Javeriana, por su ayuda y apoyo en el desarrollo de la
investigación.
Ing. Juan Guillermo Rojas, por su asesoría en el proceso de desarrollo de los prototipos.
Ing. Víctor Andrés González Céspedes por su asesoría y colaboración en el diseño de los
modelos entidad-relación para cada componente.
Ángela Vera por su colaboración en el diseño de interfaces gráficas, asignación de colores
y distribución de los objetos gráficos en el prototipo funcional.
Ing. Oscar Alirio Reyes Castro por su asesoría y colaboración en el desarrollo del proyecto
y realización de las pruebas.
Dedicamos este trabajo a Dios, nuestra familia y la comunidad universitaria.
ÍNDICE DE TABLAS
Tabla 1………………………………………………………………………………….28
Tabla2………………………………………………………………………………......38
Tabla 3……………………………………………………………………………...…..38
Tabla 4……………………………………………………………………………...…..39
TABLA DE CONTENIDO
INTRODUCCION _______________________________________________________ 10
1
MARCO TEORICO __________________________________________________ 12
1.1
E-LEARNING________________________________________________________ 12
1.1.1
HISTORIA ________________________________________________________________12
1.1.2
DEFINICIÓN:._____________________________________________________________14
1.1.3
BENEFICIOS::_____________________________________________________________14
1.1.4
CLASIFICACIÓN: _________________________________________________________15
1.1.4.1
VERTIENTE TECNOLÓGICA: __________________________________________15
1.1.4.2
VERTIENTE DE INFORMÁTICA EDUCATIVA: ___________________________16
1.2
1.2.1
1.2.2
1.2.3
1.2.4
COMPONENTES DE SOFTWARE _____________________________________ 16
DEFINICIÓN: _____________________________________________________________16
CARACTERISTICAS: ______________________________________________________19
ASPECTOS DE ESCALAMIENTO Y GRANULARIDAD: _________________________20
METODOLOGÍA DE DESARROLLO DE COMPONENTES: _______________________24
2
INVESTIGACIÓN DE LOS REQUERIMIENTOS FUNCIONALES EN LA
EDUCACION VIRTUAL COLOMBIANA____________________________________ 29
2.1
AVANCES DEL E-LEARNING EN LAS PYMES __________________________ 29
2.2
AVANCES DEL E-LEARNING EN LOS CENTROS DE EDUCACIÓN _______ 32
2.3
CARACTERISTICAS DE UNA BUENA HERRAMIENTA DE SOFTWARE __ 32
2.3.1
2.3.2
EJEMPLO DE UNA HERRAMIENTA DE E-LEARNING (MODO ADMINISTRADOR) _33
EJEMPLO DE UNA HERRAMIENTA DE E-LEARNING (MODO ESTUDIANTE) _____35
2.4
REQUERIMIENTOS FUNCIONALES DE UNA PLATAFORMA DE ELEARNING ________________________________________________________________ 36
3
ANALISIS DE BLACKBOARD Y WEBCT _______________________________ 37
3.1
BLACKBOARD ______________________________________________________ 37
3.1.1
HISTORIA DE BLACKBOARD:. _____________________________________________37
3.1.2
VENTAJAS DE BLACKBOARD: _____________________________________________37
3.1.3
HACIENDO UN RECORRIDO POR BLACKBOARD _____________________________38
3.1.3.1
INTERFAZ DE ESTUDIANTE ___________________________________________38
3.2
WEBCT _____________________________________________________________ 41
3.2.1
CARACTERISTICAS DE WEBCT ____________________________________________42
3.2.2
UN RECORRIDO POR WEBCT ______________________________________________43
3.2.2.1
PRESENTACION DE BIENVENIDA______________________________________43
3.2.2.2
ENTRANDO A WEBCT ________________________________________________44
4
DESARROLLO DE LOS COMPONENTES DE E-LEARNING ______________ 47
4.1
4.1.1
DESARROLLO DEL PRIMER COMPONENTE __________________________ 47
IDENTIFICACIÓN DE REQUERIMIENTOS:____________________________________48
4.1.2
ESPECIFICACION:_________________________________________________________48
4.1.2.1
ARQUITECTURA DEL COMPONENTE:. _________________________________49
4.1.2.2
CONTRATO DE USO __________________________________________________50
4.1.2.3
CONTRATO DE SERVICIOS____________________________________________51
4.1.3
APROVISIONAMIENTO ____________________________________________________51
4.1.4
ENSAMBLADO ___________________________________________________________51
4.1.5
PRUEBAS ________________________________________________________________51
4.1.6
DESPLIEGUE _____________________________________________________________51
4.2
DESARROLLO DEL SEGUNDO COMPONENTE ________________________ 51
4.2.1
IDENTIFICACION DE REQUERIMIENTOS ____________________________________51
4.2.2
ESPECIFICACION _________________________________________________________52
4.2.2.1
ARQUITECTURA DEL COMPONENTE___________________________________53
4.2.2.2
CONTRATO DE USO __________________________________________________53
4.2.2.3
CONTRATO DE SERVICIOS____________________________________________53
4.2.3
APROVISIONAMIENTO ____________________________________________________53
4.2.4
ENSAMBLADO:. __________________________________________________________54
4.2.5
PRUEBAS:________________________________________________________________54
5
DESARROLLO DEL PROTOTIPO FUNCIONAL _________________________ 55
5.1
DESARROLLO DEL PROTOTIPO FUNCIONAL _________________________ 56
Descripción de la arquitectura. ________________________________________________ 56
Cliente. ____________________________________________________________________ 57
Servidor Web. ______________________________________________________________ 58
Aplicación Web. _____________________________________________________________ 58
Almacenamiento. ____________________________________________________________ 58
6
CONCLUSIONES ___________________________________________________ 59
7
CONTINUIDAD DEL TRABAJO DE GRADO ____________________________ 60
GLOSARIO ____________________________________________________________ 62
9
ÍNDICE DE ILUSTRACIONES
Ilustración 1 Aplicación basada en componentes ................................................................ 18
Ilustración 2 Ciclo de Desarrollo de un Componente .......................................................... 25
Ilustración 3 Representación de un componente de software ............................................. 28
Ilustración 4 Interfaz de un componente.............................................................................. 28
Ilustración 5 Diagrama de componentes y Nodos................................................................ 28
Ilustración 6 Aplicación E-learning modo Administrador .................................................. 33
Ilustración 7 Aplicación de E-learning modo estudiante ..................................................... 35
Ilustración 8 Interfaz de presentación de Blackboard .......................................................... 38
Ilustración 9 Interfaz del validación de usuarios de Blackboard para estudiantes............... 39
Ilustración 10 Menú de presentación de Blackboard para estudiantes ............................... 40
Ilustración 11 Plataforma de WebCT................................................................................... 42
Ilustración 12 Interfaz de validación de usuarios en WebCT .............................................. 43
Ilustración 13 Menú de presentación de WebCT para estudiantes ..................................... 44
Ilustración 14 Arquitectura del Componente de Administración ........................................ 50
Ilustración 15 Arquitectura Componente de Evaluación ..................................................... 53
Ilustración 16 Arquitectura de LearnCity ............................................................................ 56
Ilustración 17 Arquitectura Física de LearnCity ................................................................. 57
10
INTRODUCCION
Hoy en día se vive en una época de grandes avances que llevan cada vez más hacia el
mundo digital, el cual agiliza los procesos más frecuentes de la vida.
Es el caso de la economía, la cual se ha llevado al mundo digital, trayendo consigo el
conocido e-business o e-commerce, transacciones de negocios a través de la red, ahorrando
tiempo y, a veces, también dinero.
Y ¿por qué no pensar en educación en el mundo digital? Haciendo uso de las grandes
velocidades que se adquieren con el uso de las redes actuales, es posible tener la
información que se desea con sólo un click. La tecnología actual puede, y debe, ser usada
para el beneficio de la humanidad, permitiéndole el acceso al mundo digital al instante de
hacer un click.
Otro tema importante es el software desarrollado para e-learning, y en general, el software;
herramientas bastante importantes para el mundo digital, que permite demasiadas
operaciones en muy poco tiempo, operaciones deseadas para un resultado específico. El
software desde sus inicios ha sido pensado como un todo que es desarrollado y vendido a
los clientes, de tal manera que si se le hace una modificación, se tiene que modificar todo el
conjunto que conforma el software. Pero, ¿por qué no ver el software como un conjunto de
elementos que al conectarse entre sí nos proporcionan un gran sistema? De esto se encarga
la ingeniería de software basada en componentes. Se desarrollan varios componentes, los
cuales al ser unidos forman un gran sistema capaz de grandes operaciones, y en caso de ser
modificado, sólo se ve afectado el componente que debe serlo, siendo los otros inmunes a
dichos cambios.
Ahora, ¿por qué no unir estos dos interesantes temas en uno solo? Una gran plataforma de
e-learning basada en componentes, los cuales tendrán unos componentes base que podrán
ser de libre distribución, código abierto y libre uso por parte de instituciones tanto privadas
como del estado que estén interesadas en llevar a cabo procesos de enseñanza o
entrenamiento a su personal, y en general, a las personas que forman parte de dicha
organización.
11
CAPITULO 1
1
MARCO TEORICO
1.1
E-LEARNING
1.1.1
HISTORIA: El e-learning se refiere al uso de las tecnologías de Internet para
proveer un amplio despliegue de soluciones que mejore el conocimiento y el
desempeño, el cual tiene tres (3) criterios fundamentales:
•
El E-Learning está vinculado en redes, las cuales lo hacen capaz de actualizaciones
instantáneas, almacenamiento y recuperación, distribución e intercambio de
instrucción e información.
Es enviado a un usuario final vía computador, usando tecnología estándar de
Internet.
Se enfoca en la más amplia visión del aprendizaje – soluciones de aprendizaje que
van más allá de los paradigmas tradicionales del entrenamiento.
•
•
Desde el principio ha tenido grandes cambios y una gran evolución apoyada por los
avances tecnológicos que han ido ocurriendo desde su inicio, y que aún no dejan de
suceder. El presente marco teórico mostrará al lector la historia y evolución del tema en
mención (e-learning) de la siguiente manera: Primero se mostrará la historia a nivel
mundial y, posteriormente, la evolución a nivel específico de Colombia.
A nivel mundial:
1990 – 1999: En esta etapa se tenía lo que se llamaba Computer Based Training (CBT), el
cual consistía en CD-ROM que se usaban en el computador del usuario final, en estaciones
de entrenamiento Standalone, y otras veces a través de redes LAN Cliente/Servidor. Se
empezaron a crear herramientas multimedia para la enseñanza, como es el caso de
Macromedia con su herramienta Authorware. Se tenían problemas de presupuesto, ya que
era demasiado costoso adquirir una herramienta de este tipo; algunos problemas de tiempos
de desarrollo de las herramientas que conllevaba una muy difícil y costosa modificación.
•
•
1994 – 1999: La noción de pre-empacar sistemas CBT y venderlos a una gran masa
era un mejor modelo. Compañías como CBT Systems (ahora SmartForce)
comenzaron a liderar un mercado que creció, y llegó a exceder, hasta los cien
millones de dólares en utilidades aproximadamente.
1997 – 1999: En esta época los clientes se dieron cuenta que poseían altos costos de
inversiones en productos de aprendizaje, así como un alto número de CD-ROM,
sobre los cuales no se tenía conocimiento si iban a ser utilizados o iban a tener algún
12
•
•
•
impacto en la capacitación del personal de la empresa. Se comenzaron a crear
sistemas que permitían la administración de entrenamientos basados en CD-ROM, e
inclusive de entrenamiento basado en Web, y lo podía hacer entre diferentes
locaciones, también permitían reportar los resultados de todo, y estratificarlos por
zona, por departamento, etc. Estos sistemas son conocidos como Learning
Management Systems (LMS).
1999: Mientras las compañías empezaban a completar las instalaciones de sus
intranets, y el ancho de banda de 56K, e inclusive mayor, comenzó a tener auge,
empezó a tener sentido la idea de migrar del entrenamiento basado en CD-ROM al
entrenamiento basado en Web. Esto ayudaría a justificar el costo de la Intranet, es
decir, la implementación del e-learning (comenzó a ser utilizada esta palabra en este
año) comenzó a ser más fácil que los CD-ROM, y la enseñanza podía ser tomada en
cualquier lugar y en cualquier momento. Aunque se tenían inconvenientes como el
ancho de banda, que aún no era lo suficientemente bueno como para permitir el
enriquecimiento de los medios para la enseñanza.
Mitad de 1999 – 2000: En ese momento el desarrollo de cursos Web con
administración centralizada se convirtió en lo que es ahora, pero no existía algún
lugar en donde se pudiera ver el contenido personalizable, manipulable y de alta
calidad. Muchos proveedores de e-learning empezaron a ofrecer “centros de compra”
de contenido Web administrado centralmente y accesible a través de toda la empresa.
Principios del 2000 – ahora: Se ofrecen paquetes de contenidos que proveen el
suficiente enfoque y la calidad que hacen que el contenido parezca listo para encajar
perfectamente en los planes de entrenamiento de la organización del cliente.
En Colombia:
•
•
•
•
•
•
1982: Se crea la Universidad Abierta y a Distancia (UNAD).
1992: Se comienzan procesos educativos más elaborados, y algunas universidades
dictan maestrías realizando teleconferencias con México.
1996: Empieza la revolución de la educación virtual en Colombia, y nace el concepto
de la educación virtual en el país.
1999: Se comienza el desarrollo de software para educación virtual, y hay unos
primeros avances en tecnología de redes, lo cual abre un nuevo panorama a la
educación virtual.
2002: Nace el portal de educación virtual Colombia Aprende.
2003: Comienza el uso del software de e-learning por parte de las PYMES
colombianas, además se crean empresas de desarrollo de software para e-learning y
se realizan estudios sobre la aceptación del e-learning en las empresas.
El crecimiento en esta modalidad de educación se ha visto marcado en las Universidades
por la Educación Continua, especializaciones, y programas de pregrado.
13
Después del 2002 algunas empresas colombianas han empezado a implantar programas
de e-Learning con el fin de capacitar clientes, empleados y proveedores de una manera
mucho más rápida y efectiva, disminuyendo costos y aumentando la productividad.
1.1.2
DEFINICIÓN: Se puede definir el e-Learning como todo proceso de entrega de
educación al usuario, por medios electrónicos. El e-learning involucra el uso de un
computador o de dispositivos electrónicos (por ejemplo: dispositivo móvil) para, de
alguna manera, proveer entrenamiento, educación o material de aprendizaje.
La entrega de actividades de entrenamiento formales e informales, procesos,
comunidades y eventos vía el uso de todos los medios electrónicos, tales como
Internet, Intranet, Extranet, CD-ROM, video cassettes, DVD, televisión, teléfonos
celulares, organizadores personales, etc.
1.1.3
•
•
•
•
•
•
•
BENEFICIOS: La implantación de un sistema de e-learning provee de grandes
beneficios para una institución que lo realice. A continuación se muestran dichos
beneficios:
El e-learning baja los costos con relación a la enseñanza presencial. Además
disminuye los gastos de viaje, reduce el tiempo que toma el entrenar a las personas,
y elimina o aminora la necesidad de una infraestructura tipo salón de
clases/instructor.
El e-learning mejora la respuesta de los negocios. Una plataforma de e-learning
puede alcanzar un número elevado de personas en forma simultánea. Esto puede ser
crucial cuando las prácticas y las capacidades comerciales tienen que cambiar
rápidamente .
Los mensajes son coherentes o a la medida, dependiendo de las necesidades. Cada
uno recibe el mismo contenido, presentado en la misma forma. Cuando sea
necesario los programas pueden diseñarse a la medida para diferentes necesidades.
El contenido es más oportuno y confiable. Una de las ventajas que permite el estar
en la Web es que el e-learning puede estar actualizado instantáneamente, haciendo
la información más útil por más tiempo.
Aprender es 24/7. Las personas pueden tener acceso a la educación las veinticuatro
(24) horas del día, los siete (7) días de la semana.
Universalidad. El e-learning está habilitado para la Web y toma ventaja de dichos
protocolos, permitiéndole a las personas tener virtualmente el mismo material de
virtualmente el mismo modo.
Crea comunidad. La Web permite a la gente construir comunidades de práctica
duraderas, donde ellos pueden unirse para intercambiar información y puntos de
vista mucho después de que el programa de entrenamiento termine.
14
•
Escalabilidad. Los programas de e-learning pueden mover desde 10 participantes
hasta 100.000 de ellos, con poco esfuerzo o incremento de los costos (mientras la
infraestructura sea la adecuada).1
1.1.4
CLASIFICACIÓN: Debido al gran crecimiento del e-learning desde su inicio, se
ha clasificado el e-learning en dos vertientes, las cuales se describen a continuación:
1.1.4.1 VERTIENTE TECNOLÓGICA: Esta vertiente de la educación virtual, como su
nombre lo indica, se enfoca más hacia la tecnología, y se han definido cinco (5)
niveles de evolución para esta vertiente:
•
Nivel 1
La virtualidad cambió el tradicional sistema de entrega postal de material académico,
por el envió de material electrónico a través de redes de comunicaciones, basando su
funcionamiento en arquitecturas simples que contenían una base con el material de los
cursos, un servidor instruccional (IS) y una red de comunicaciones para el envió de la
información, la comunicación con los estudiantes se manejaba de manera asincrónica2
por medio del e-mail.
•
Nivel 2
Se empiezan a incorporar componentes de audio, video y comunicación de una sola vía.
A esta altura tanto el servidor como las bases de datos soportan este tipo de
información.
•
Nivel 3
Se adicionan componentes dinámicos de interacción; para ello se deben agregar equipos
de digitalización de sonidos y video, software de navegación, programas de Chat,
boletines, conferencias virtuales en vivo, comunicación sincrónica y asincrónica en dos
vías y redes de comunicación con bastante ancho de banda.
•
Nivel 4
No sólo se basan en técnicas más modernas de entrega de materiales, sino en materiales
mucho mejor preparados, transformándolos en lo que se denominara Objetos de
aprendizaje y componentes interactivos que se adaptan a las necesidades del estudiante,
1
Tomado de: http://ccc.inaoep.mx/~josemcr/TECNOLOGIA%20ORIENTADA%20A%20OBJETOS/Proyecto-pem.pdf
(mayo 04/05)
2
Asíncrono: Modo de transmisión arbitraria o aleatoria, en la que los canales de envío y de recepción son
diferentes, actuando uno de ellos con mayor velocidad que el otro.
15
y por lo tanto pueden ser reconstruidos y reutilizados en diferentes plataformas; se
incorporan evaluaciones autoformativas denominados tutores electrónicos.
•
Nivel 5
Este es el nivel más alto y desarrollado. Se tienen aplicaciones y componentes con
especializaciones muy complejas y funcionales, enfocadas a casos concretos que
solucionan problemas particulares.
1.1.4.2 VERTIENTE DE INFORMÁTICA EDUCATIVA: Esta vertiente estratégica se
enfoca hacia la informática educativa. Se adelantan programas de adopción,
adecuación o desarrollo de software como mecanismos de apoyo para el
mejoramiento de la calidad tanto de las metodologías y prácticas docentes de los
diferentes servicios educativos, así como de la organización y administración de
las propias instituciones educativas.
Si bien el término aparece como algo simple, a estas aplicaciones se les ha denominado
comúnmente como informática educativa. Los avances en esta vertiente son igualmente
diferenciales y abarcan campos que van desde el desarrollo de software educativo y
plataformas virtuales, desarrollo de micro-mundos virtuales, hasta inteligencia artificial,
tanto para educación presencial como a distancia.
1.2
COMPONENTES DE SOFTWARE
1.2.1
DEFINICIÓN: El desarrollo de software basado en componentes es algo nuevo en
el campo de la ingeniería de software. La idea de este es tratar de emular el
hardware realizado por los ingenieros electrónicos, el cual es un conjunto de
compuertas y componentes electrónicos, los cuales se unen entre sí para dar un
resultado general.3
A continuación se muestran algunas definiciones de componentes de software:
•
•
3
“Un componente es una parte no trivial, casi independiente y reemplazable de un
sistema que realiza una función en el contexto de una arquitectura bien definida. Un
componente conforma y provee la realización física de un conjunto de interfaces.
Un componente de software es un paquete dinámico de uno o más programas
manejados como una unidad y acceso a través de interfaces documentadas que
pueden ser descubiertos en el momento de la ejecución.
Tomado de: http://ccc.inaoep.mx/~josemcr/TECNOLOGIA%20ORIENTADA%20A%20OBJETOS/Proyecto-pem.pdf,
04 de mayo de 2005
16
•
Un componente es un elemento de software que se conforma a un modelo de
componentes, y puede ser desarrollado independientemente y compuesto sin
modificación, de acuerdo a un Standard de composición.”4
El modelo de componentes define la interacción específica y los estándares de
composición. Una implementación de un modelo de componentes es el conjunto dedicado
de elementos de software ejecutables requeridos para soportar la ejecución de componentes
conforme al modelo.
La idea de que el software debe ser construido por componentes previamente fabricados,
fue publicada por primera vez en 1968 en Garmish, Alemania. Más adelante Microsoft dio
su aporte a la evolución de los componentes, con la implementación de OLE (Object
Linking and Embedding) y COM (Component Object Model). Actualmente existen muchos
modelos de software de componentes exitosos, tales como: 5
•
•
•
•
•
Programación orientada a componentes
o VBX, OCX/ActiveX/COM de Microsoft
o Enterprise Java Beans de Sun Microsystems
o XPCOM de Mozilla
Tecnologías de documentos compuestos
o Bonobo (una parte de GNOME)
o OLE
o OpenDoc
Tecnologías de objetos de negocios
o Newi
Componentes de software de computación distribuida
o CORBA de The Open Group
o DCOM y versiones recientes de COM (y COM+) de Microsoft
o SOM de IBM
o Frameworks de WebServices de diferentes proveedores
J2EE de Sun Microsystems
.NET de Microsoft
o UNO (Universal Networks Objects) de OpenOffice.org
Lenguajes de descripción de interfaces
o SOAP IDL de W3C
o Parte de COM y CORBA
4
Tomado de: Styperski, Clemens. “Component software = Beyond object oriented programming”
Addison-Wesley Edition. 2002 589p
5
Tomado de: http://ulaweb.adm.ula.ve/DSIA/presentaciones/2a%20Charla%20DSIA%20Componentes.ppt, 04 de mayo
de 2005
17
Para poder integrar los componentes se debe definir un lenguaje de descripción de
interfaces (IDL – por sus siglas en inglés) para que los componentes puedan existir de
manera anónima para otros componentes en el computador. Un concepto importante es que
un componente debe tener interfaces claramente definidas.
Un estándar de interfaces declara los servicios que puede ofrecer dicho componente. Un
componente soporta una interfaz dada si el componente contiene la implementación de
todas las operaciones definidas por dicha interfaz.
Ilustración 1 Aplicación basada en componentes
(http://ccc.inaoep.mx/~josemcr/TECNOLOGIA%20ORIENTADA%20A%20OBJETOS/Proyecto-pem.pdf, 28 de junio
de 2005)
Un estándar de interacción especifica el tipo de dependencias explícitas del contexto que
puede tener el componente. Para habilitar la reutilización y la interconexión de los
componentes, los productores y consumidores de componentes a menudo acuerdan un
conjunto de interfaces antes del diseño de los componentes. Estos acuerdos mutuos pueden
llevar a la estandarización de las interfaces.
“Las tecnologías más prominentes de componentes (Enterprise JavaBeans, ActiveX, y
Corba) imponen restricciones a los mismos. Por ejemplo, la habilidad de la infraestructura
de un componente para explorar las interfaces de los componentes requiere que uno de ellos
implemente algún servicio u obedezca alguna convención, así como están definidas por la
infraestructura de componentes que los soporta."6 Esto puede ser tan simple como un
6
Styperski, Clemens. “Component software = Beyond object oriented programming”
Addison-Wesley Edition. 2002 589p
18
conjunto de estándares de nombres para las operaciones, una ubicación estándar para poner
información acerca de los componentes usando la infraestructura para hacerlo de manera
efectiva y eficiente a través de servicios para:
•
•
•
•
•
Encontrar qué componentes están conectados actualmente a la infraestructura.
Hacer referencia a algunos componentes a través de un esquema de nombres.
Garantía de entrega una sola vez de mensajes entre componentes.
Administrar transacciones que consisten de múltiples interacciones entre
componentes.
Permitir comunicación segura entre componentes.
El desarrollo basado en componentes ha alcanzado algunas implicaciones para la
construcción, obtención, conexión, y evolución de sistemas, enmarcando algunas
preocupaciones. Tales preocupaciones se pueden resumir en dos, las cuales son:
•
•
1.2.2
•
•
•
•
7
Los componentes son usados como una filosofía de diseño, independiente de
cualquier preocupación de reutilización de componentes existentes.
Los componentes son vistos como bloques de construcción independientes usados
para diseñar e implementar un sistema basado en componentes.7
CARACTERISTICAS: La programación orientada a componentes se podría
considerar de alguna forma la evolución de la programación orientada a objetos, de
allí que muchos de los principios sean compartidos. Algunos de esos principios son
el encapsulamiento, polimorfismo, su identidad, y la integración de datos y
funciones, pero siempre hay que tener en cuenta que la robustez de un componente
de software es un factor de bastante cuidado, ya que dicho componente podría
funcionar en diferentes entornos.
Un componente de software bien definido debería ser:8
Identificable: Debe tener una identificación clara que facilite su clasificación.
Autocontenido: No debe necesitar de otro componente para prestar sus servicios,
de ser así, es conveniente redefinir el componente.
Rastreable: Se le puede hacer seguimiento durante el ciclo de desarrollo.
Reemplazable: Se puede cambiar fácilmente por otro que preste los mismos
servicios, sin necesitad de redefinir todo el sistema.
Tomado de: http://fad.uta.cl/dfad/docum/cedm/1-cl-Luis%20Hern%E1ndez%20Sc%E4fer-Gim%20Ivy.pdf , 04 de
mayo de 2005
8
Tomado de: http://ulaweb.adm.ula.ve/DSIA/presentaciones/2a%20Charla%20DSIA%20Componentes.ppt , 04 de mayo de
2005
19
•
•
•
•
•
•
Acceso definido: Sólo pueden acceder a sus servicios por medio de sus interfaces, y
se deben ocultar los detalles de diseño.
Servicios inmutables: Los servicios ofrecidos no deben variar, y los cambios
realizados al interior del componente no deberían alterar los servicios.
Documentación: La documentación debe ser lo suficientemente clara para
identificar el componente, la adaptación a un nuevo ambiente, integración con otros
componentes y la evaluación.
Mantenido: Significa que debe existir alguien que le brinde soporte al componente
en caso de falla, y actualizaciones.
Múltiples interfaces: Puede tener diferentes interfaces de acuerdo a los servicios
que ofrece el componente, así como las reglas que requiere para su uso.
Empaquetamiento robusto: Debe garantizar su funcionamiento en un ambiente
que interactúa con otros componentes.
Adicionalmente de estos requerimientos esenciales, existen otros requerimientos ideales
para un componente:
•
•
•
•
Es independiente del lenguaje o de las herramientas usadas para su desarrollo
Es independiente de la plataforma de ejecución
Puede ser reutilizado dinámicamente
Está certificado.
Estos últimos cuatro requerimientos son muy difíciles de satisfacer a los usuarios
consumidores de componentes, debido a que en la actualidad las diferentes tecnologías que
soportan el desarrollo de componentes de software solucionan parte de estos requerimientos
sacrificando otros.
1.2.3
ASPECTOS DE ESCALAMIENTO Y GRANULARIDAD: La división del
diseño en componentes es un proceso que tiene un alto impacto en el éxito de los
componentes resultantes. El mejor tamaño de un componente depende de muchos
aspectos diferentes.
A continuación se pueden observar dichos aspectos, los cuales permiten medir la
granularidad de un componente:
•
Unidades de abstracción
Tal vez la abstracción es la herramienta más poderosa disponible para un ingeniero
de software. La principal ventaja de la abstracción es la experiencia de diseño que se
encierra en ella, lista para ser reutilizada.
20
Un framework puede ocultar completamente su implementación, y sólo proveer una
interfaz abstracta. Dicho framework, llamado framework de caja negra, actúa como
una unidad de abstracción.
•
Unidades de contabilidad
En sistemas grandes, como lo son los típicos para soluciones empresariales, el costo
actual varía por partes individuales de un sistema, y su uso puede ser monitoreado.
Si esto pasa entonces se vuelve importante una partición del sistema en unidades de
contabilidad.
•
Unidades de análisis
Cualquier sistema de al menos un tamaño medio necesita ser particionado
jerárquicamente en unidades pequeñas, y el acoplamiento entre dichas unidades
debe ser tan débil como sea posible.
Particionar el sistema en unidades limitadas de análisis es necesario en la práctica
cuando un sistema se vuelve muy grande para que un análisis global sea factible.
Es aconsejable el buscar las unidades más pequeñas de análisis posibles. En algunos
casos, clases individuales e inclusive métodos pueden formar las unidades de
análisis.
Un componente es la unidad más grande posible de análisis.
•
Unidades de compilación
La compilación es un aspecto fundamental. Para permitir optimizaciones más
globales, las unidades de compilación deben ser tan grandes como sea factible
prácticamente. Los componentes son el límite superior; los módulos pueden ser un
mejor compromiso que las clases.
•
Unidades de entrega
Esto se refiere a unidades de entrega cuando se piensa en la distribución en el
mercado. Hoy las aplicaciones, y algunas veces los componentes, son las unidades
típicas de entrega. Los objetos individuales raramente justifican el esfuerzo
administrativo y el costo de entrega. Sorprendentemente, la necesidad de tener claro
y establecer contratos de interfaces, para proveer entradas de catálogo, para el
mercado y el mantenimiento de los componentes agregan costos significativos a
algo inherentemente tan barato de replicar como un componente de software.
•
Unidades de despliegue
El despliegue es el proceso de alistar una unidad de operación en un ambiente en
particular. En casos simples, el despliegue es un paso trivial y además
frecuentemente confundido o identificado con la instalación.
21
Las unidades de despliegue pueden ser clases individuales con su descriptor de
despliegue, pero usualmente son colecciones más grandes de clases, recursos y
descriptores.
•
Unidades de disputa
Si un sistema que se compone de muchos componentes falla, los proveedores de los
componentes comenzarán a culparse unos a otros por el problema. Para minimizar
este efecto indeseable, es vital que los errores se mantengan contenidos en
componentes individuales. Es decir, los errores pueden ser fácilmente atribuidos a
un componente en particular, y ellos (los componentes) no deben poner en peligro a
todo el sistema.
El manejo adecuado de excepciones no controladas (fallas reales de un componente
llamado) requiere atenciones arquitectónicas. En el caso general, el componente que
llama no podrá solucionar dicha situación. En cambio de eso, un alcance de
encapsulamiento debe ser usado para contener las consecuencias de una falla.
Pueden ser usadas políticas de manejo y control de errores, tales como reintentar o
fallar y reportar al usuario, para actuar de manera apropiada al momento de surgir
un error.
•
Unidades de extensión
Un componente puede no proveer nueva funcionalidad, pero, a cambio, puede
extender la funcionalidad existente o implementar interfaces existentes.
Una unidad de análisis no debe ser abierta en muchas unidades de extensión. En
cambio, una extensión puede ser integrada a un sistema objetivo con un contexto
incompleto, en otras palabras, con un contexto diferente del mismo al momento del
análisis.
•
Unidades de contenido de fallas
Los sistemas distribuidos deben tener en cuenta clases de fallas que no están bajo el
control de algún componente de software en particular.
Un subsistema de contenido de fallas debe ser por sí mismo tolerante a fallas, es
decir, debe tolerar y solucionar de manera efectiva las fallas que él debe contener.
Las unidades de contenido de fallas son muy importantes a nivel de toda la
arquitectura del sistema.
Si un componente falla en el cumplimiento de su contrato, entonces ese hecho no
puede ser reportado en el marco del contrato. Una manera de manejar este tipo de
situaciones es arrojar una excepción, o contactar un mecanismo de control de
errores por fuera de los límites.
22
•
Unidades de instanciamiento
La unidad de instanciamiento estándar es un objeto.
Un componente puede empaquetar muchas clases. Esto no es una unidad útil de
instanciamiento puesto que las clases contenidas necesitan ser instanciadas
individual e independientemente. Forzar un componente a tener sólo una clase no es
útil.
•
Unidades de instalación
La instalación es una actividad, específica de la plataforma, que hace que una
unidad instalada esté disponible para uso sobre una configuración específica de
hardware soportada por la plataforma. La unidad típica de instalación es un árbol de
archivos, posiblemente reunidos y comprimidos en un archivo.
•
Unidades de carga
Como las clases de un componente típicamente interactúan de manera cerrada,
cargar una clase podría causar inmediatamente la carga de otras clases. Usualmente
es más eficiente cargar todo el componente como una unidad.
Cuando se carga un nuevo componente, este debe ser revisado primero. La carga
debe estar condicionada, si el nuevo componente usa otros componentes que no
están disponibles en ese ambiente o que sean de una versión no compatible
(diferente de la solicitada).
Para máxima compatibilidad, la revisión de versiones debe ocurrir por clase o
interfaz e inclusive por método, mejor que por componente.
Cuando se está cargando componentes de diferentes orígenes, pueden ocurrir
colisiones de nombres (si ya existe algo que esté siendo usado y tiene el mismo
nombre del componente que se quiere usar ahora). Debe existir un mecanismo para
prevenir dichas colisiones. La manera más segura es definir un esquema de nombres
jerárquico, donde el nivel más alto está registrado con una autoridad global de
nombres.
La carga de nuevos objetos no debe invalidar otros objetos actualmente cargados.
•
Unidades de localidad
Esto cubre aspectos de computación distribuida.
Los sistemas distribuidos modernos están arreglados en una jerarquía de redes:
desde redes de área conectando procesadores, redes de área local (LAN), y varias
redes intermediarias posibles (redes de área amplia – WANs), directo a Internet.
Los costos de comunicación se incrementan con el nivel de red usado.
23
Es útil diseñar interfaces de unidades de localidad, es decir, las interfaces deben
atender solicitudes entre máquinas, de una manera que minimice el número de
solicitudes individuales.
•
Unidades de mantenimiento
Los productos de software raramente son perfectos al salir. Usualmente es necesario
distribuir actualizaciones para corregir errores, las cuales son más eficientes, o
añadir nuevas características. Si una actualización cambia los trabajos internos del
componente, los componentes cliente que dependen de él pueden fallar.
•
Unidades de administración del sistema
Ciertas partes de un sistema pueden requerir administración explícita que va más
allá del mantenimiento. Para administrar un sistema, es útil particionarlo en
unidades de administración, cada una de las cuales puede ser individualmente
monitoreada para disponibilidad, carga, etc.
1.2.4
METODOLOGÍA DE DESARROLLO DE COMPONENTES: Los procesos de
desarrollo de componentes son muy similares a los procesos empleados en el
desarrollo de sistemas orientados a objetos. Los componentes, a diferencia de otros
sistemas, necesitan cuidado especial en la definición y especificación de las
interfaces. El Rational Unified Process (RUP) es una metodología que se ha
adaptado a este tipo de desarrollos, llevando el ciclo de desarrollo en seis (6) etapas,
con entregables al final de cada etapa, y demarcando el flujo que hay entre una
etapa y otra.
En la ilustración 2 se muestra un esquema a alto nivel de este proceso. Los bloques
representan conjuntos de actividades que dan lugar a resultados tangibles, las
flechas gruesas representan su secuencia y las flechas finas representan el flujo de
elementos generados que transfieren información entre ellas.9
9
Tomado de: http://ulaweb.adm.ula.ve/DSIA/presentaciones/2a%20Charla%20DSIA%20Componentes.ppt mayo 04/05
24
Ilustración 2 Ciclo de Desarrollo de un Componente
(http://ccc.inaoep.mx/~josemcr/TECNOLOGIA%20ORIENTADA%20A%20OBJETOS/Proyecto-pem.pdf, 28 de junio
de 2005)
Comparando el diagrama de metodología de los sistemas orientados a objetos con los
sistemas orientados a componentes, encontramos similitudes en el ciclo de desarrollo en las
etapas primarias y finales del proyecto, mientras que en las etapas intermedias cada una
tiene su especialización.
Las actividades que intervienen en el proceso de desarrollo son las siguientes:
•
•
•
•
•
Requerimientos: Consiste en la obtención clara y especifica de las necesidades que
se quieren satisfacer con el componente, produciendo artefactos tangibles como un
documento de casos de uso, y un modelo conceptual.
Especificación: Esta etapa consiste en identificar posibles componentes en el
sistema, dónde podrían existir las interfaces, luego se busca la manera de definir la
forma de interacción entre componentes, y por ultimo se genera la especificación de
componentes donde se especifica cada componente utilizado en el sistema.
Aprovisionamiento: Esta etapa consiste en la implementación de los componentes,
teniendo en cuenta el documento de especificación resultante en la etapa pasada.
Ensamblado: Esta etapa consiste en la integración de los componentes
desarrollados en la etapa anterior.
Pruebas: Se comprueba el completo y correcto funcionamiento de la aplicación y
los componentes, y se generan las aplicaciones probadas.
25
•
Despliegue: Consiste en la instalación de la aplicación probada, en el entorno de
trabajo.
Otras tareas en la metodología de desarrollo de componentes son:
•
Especificación y diseño de componentes
Como se mencionó anteriormente, la etapa de especificación de componentes esta
subdividida en tres subetapas en donde se identifica el componente, se definen los
mecanismos de interacción, y posteriormente se especifica y esa especificación se
ve reflejada en un documento; paralelo a esto y hay que tener en cuenta los
contratos existentes en un componente:
Contrato de uso: Es el contrato que se establece entre la especificación del
componente y la aplicación cliente que la utiliza. Este contrato es consumido por el
cliente al usar los servicios que presta el componente por medio de sus interfaces.
Contrato de instalación: Es el contrato que se establece entre la implementación, y
el entorno en el que puede operar. Si el componente necesita de otros componentes
en este contrato se debe especificar qué componentes adicionales se requieren.
•
Especificación de una interfaz
Una interfaz especifica la manera en la que un componente es reutilizable, y cómo
se puede integrar con otros componentes. Por lo general, lo que se hace con un
componente es que la interfaz reciba un conjunto de datos necesarios para realizar
una operación, y retorna un resultado como respuesta a esa petición hecha por el
cliente, de esta manera es concluido el servicio ofrecido, y la conexión de los
componentes para la prestación del servicio se resume a la forma en la que es
invocado el componente y los parámetros necesarios para que dicho servicio se
pueda prestar.
La naturaleza de una interfaz es variable, y está sujeta al lenguaje en el que sea
desarrollada, por ejemplo en la Programación Orientada a Objetos (POO) las
interfaces son visibles y publican métodos que otras clases implementan, mientras
que en los lenguajes procedimentales se puede interpretar una interfaz como una
variable global, o una función.
Algunas interfaces conocidas son:
• Interfaces de datos: Estas interfaces se encargan de recibir algunos datos de
entrada, ejecutan un proceso, y posteriormente arrojan un resultado, este tipo de
interfaz tiene el formato de las bases de datos relacionales, y el ASCII.
26
• Interfaces gráficas: Es la capa de presentación que existe entre el usuario y
el sistema, dicha interfaz ofrece los servicios a los cuales el usuario tiene acceso,
y oculta los detalles de implementación detrás de ella.
• Interfaces de programación: El mecanismo empleado es el API
(Application Programming Interface). Aquí se establece la relación de dos
aplicaciones que funcionen en plataformas iguales o diferentes. Un ejemplo de
esto son las librerías usadas en java en donde cada paquete contiene una interfaz
y un conjunto de clases que la implementan.
Luego de analizar las diferentes interfaces, vamos a mencionar los ítems que
debe de tener la especificación de una interfaz.
• Un identificador al que se le pueda hacer referencia.
• El modelo de información, esto son los atributos, tipos de asociaciones,
definidos unos en función de otras hasta formar un sistema cerrado.
• La descripción de las operaciones a las cuales el usuario tiene acceso a los
servicios prestados. Aquí podemos incluir el indicador, precondiciones,
poscondiciones, parámetros, etc.
• Conjunto de invariantes y restricciones.
La Tabla 1 muestra una comparación entre lo que especifica un componente y la interfaz de
un componente.
Tabla 1 Especificación de interfaz y componente
27
Modelamiento de componentes con Unified Modeling Language (UML)
UML representa un componente por medio del siguiente gráfico:
Ilustración 3 Representación de un componente de software
(http://www.sparxsystems.cl/WhitePapers/El_Modelo_de_Componentes.pdf, junio 28 de 2005)
Un diagrama de componentes muestra la relación entablada entre los diferentes
componentes de un sistema, estableciendo diferencias, dependencias y canales de
comunicación.
En UML una interfaz se representa con el siguiente gráfico.
Ilustración 4 Interfaz de un componente (http://www.sparxsystems.cl/WhitePapers/El_Modelo_de_Componentes.pdf, (junio 28 de 2005)
A continuación se muestra un diagrama de componentes en UML:
Ilustración 5 Diagrama de componentes y Nodos
(http://www.sparxsystems.cl/WhitePapers/El_Modelo_de_Componentes.pdf, junio 28 de 2005)
28
CAPITULO 2
2
INVESTIGACIÓN DE LOS REQUERIMIENTOS FUNCIONALES EN LA
EDUCACION VIRTUAL COLOMBIANA
Los procesos de aprendizaje son innatos en el ser humano, el hombre desde siempre anda
en busca de su verdad, parte de ella es heredada de su familia, otra parte de la sociedad, y la
mayor parte de esta es responsabilidad del propio individuo. Es así como cada uno como
ser individual, se enfoca hacia diferentes horizontes, pero siempre con el mismo objetivo:
saber ¿Quién es?, ¿de donde viene? y ¿hacia dónde va?
Estas búsquedas a lo largo de toda la historia de la humanidad han generado demasiado
conocimiento, y dominio del entorno en donde vivimos, cosas que a pesar de ser muy
importantes se hacen insuficientes con el fortuito cambiar de los tiempos, porque en el
mundo en donde hoy se vive nacen nuevas ciencias, tecnologías, paradigmas, etc. que
parten de lo ya existente y se especializan en áreas concretas y específicas.
Parte de los grandes avances de la humanidad es la tecnología, con ella se acortaron
grandes distancias entre países por medio de las telecomunicaciones. Se automatizaron
procesos en las industrias para suplir las necesidades de las grandes sociedades
consumistas, y se desarrollaron máquinas que simplifican el trabajo y hacen más grata la
vida del hombre. Sin embargo, no todos tienen las facilidades de acceso a esas tecnologías
y muchas veces gozar de ellas se convierte en un privilegio costoso que solo pocos pueden
pagar.
Colombia, como país tercermundista, es una nación que tiene falencias en el campo de la
tecnología, y en el acceso a la educación, problemática que se refleja en las industrias,
colegios y universidades; ya sea por la imposibilidad de acceder a ella, o por la falta de
conocimiento tecnológico de quienes tienen acceso a esta.
Esta investigación está enfocada en los centros de educación, tales como universidades,
colegios y escuelas; por otro lado, en el campo empresarial se buscó un enfoque en las
PYMES (pequeña y mediana empresa).
2.1 AVANCES DEL E-LEARNING EN LAS PYMES
Los procesos de e-learning en las organizaciones son indispensables para la capacitación de
personal de una manera rápida y a bajo costo. En latino América muchas empresas han
implantado programas de e-learning en sus empresas y en ocasiones muchas de estas
empresas invierten millones en el software y dejan poco presupuesto para el proceso
fundamental que es el contenido que se desea montar en estas páginas.
29
El problema radica en que este tipo de herramientas son demasiado costosas, y la inversión
que realiza una empresa se agranda cuando se da cuenta de que no es necesario tener el
software, sino que también es indispensable tener una buena infraestructura de hardware
que soporte la herramienta de e-learning, para que el desempeño de esta sea óptimo y pueda
lograr el fin para el cual fue adquirida.
Es claro que existen otros problemas, que son de tipo cultural y no dependen de la
tecnología que se implemente. Estas necesidades son el cambio de paradigma que existe
entre el concepto actual de educación presencial, y el concepto que se viene presentando
desde hace cinco años del e-learning, por lo cual, aunque mucha gente parezca estar
interesada en este tipo de educación, pocos se animan y no creen en la calidad que esta
puede ofrecer.
“Una encuesta realizada conjuntamente por el portal de formación virtual
www.ElPrincipe.com y la Universidad Nacional de Tres de Febrero UNTREF- durante
diciembre de 2001 y enero de 2002, reveló que el 71% de los consultados tiene mucho
interés en capacitarse por Internet, mientras que el 26% mostró un relativo interés y el 3%
manifestó que consultaba esta modalidad sin ninguna intención específica.”10.
Para esta muestra se tomó una población de 1253 interesados en tomar cursos de educación
a distancia, profesores y estudiantes universitarios.
Las estadísticas muestran que la mayoría de la gente presenta interés por este tipo de
educación, ya que ésta le ofrece ventajas de tiempo y espacio que una formación presencial
no facilita. Sin embargo, para no dejar que se pierda este interés y para lograr mantener la
credibilidad, una institución dedicada a la educación, a diferencia de una empresa que
quiera capacitar a sus empleados en una actividad, debe estar certificada por una entidad de
prestigio, y ofrecer igual o mayores dificultades en materia académica que un centro de
educación presencial.
Grandes empresas multinacionales han implantado dentro de sus organizaciones programas
de e-learning para sus clientes y sus empleados con el fin de agilizar los procesos de
aprendizaje y de hacerlos de una manera más cómoda. Ejemplos de estas empresas son:
Oracle: http://education.oracle.com/latinamerica/elearning/ (28 de junio de 2005)
Cisco: http://www.cisco.com/global/co/ee/el/index.shtml (28 de junio de 2005)
En esta última referencia (Cisco) ellos como empresa dan su definición de E-learning y
nombran las múltiples ventajas que tiene para ellos apoyarse en este tipo de tecnologías.
Estas ventajas no son apáticas a la situación de las empresas colombianas, ya que por
grandes o pequeñas que estas sean, todas tienen procesos generales y vitales para el buen
10
Tomado de: http://www.emagister.com/f_artic.cfm?next_page=form&id_artic=858, 28 de junio de 2005
30
desarrollo de la empresa en donde estas ayudas tecnológicas pueden servir; varios ejemplos
de estos son:
•
•
Capacitar nuevos empleados y proveedores en una compañía
Capacitar personal de una compañía en un tema especifico
Empresas que tengan una rotación constante de empleados o que se tengan que estar
actualizando de manera muy rápida en algún tema en especial, son candidatas a aplicar esta
tecnología, puesto que esto les ayudará a ahorrarse muchos costos de capacitación y a usar
de una manera más eficiente los recursos de la empresa y de Internet.
Analizando este contexto, dentro de una PYME encontramos que su problemática
trasciende mas allá de la que podría tener una gran empresa que invierte mucho tiempo y
capital en proyectos de este tipo, ya que los recursos económicos y de tiempo en su gran
mayoría son mucho mas limitados que en una gran empresa, a ello podemos sumarle la
falta de visión de alguna de estas en cuanto a las ventajas que este tipo de tecnología podría
ofrecer a la organización.
Con base en un estudio de campo realizado por el grupo PICS11 a las PYMES del sector de
las IPS (Empresas Proveedoras de Servicios de Internet) de Bogotá, se envcontro que 90%
de las empresas encuestadas conocen las ventajas del e-learning y valoran la utilidad que
estas pueden tener dentro de su organización mientras que el 10% restante no lo vio
necesario, argumentando que la rotación de personal y el nivel de conocimiento necesario
para su negocio, era bastante trivial como para invertir grandes cantidades de dinero en este
tipo de tecnología.
Tomando como base las empresas que mostraron su interés en herramientas de este tipo, se
preguntó si ellos estarían interesados en adquirir componentes de software prefabricados de
manera gratuita, para poder fabricar sus propias herramientas de e-learning, y el 100%
respondió que si, y que estaban dispuestos a contratar por lo menos un ingeniero de
sistemas para la realización del proyecto.
Esta afinidad se debe a que en algún momento estas empresas ha participado en procesos de
desarrollo de software, y conocen los riesgos y los costos que estos implican, y al tener
elementos de software prefabricados que se pueden integrar fácilmente y de libre
distribución, reducen los costos del proyecto, haciéndolas más accesibles a este tipo de
tecnología.
11
PICS: proyecto de investigación de componentes de software
31
2.2 AVANCES DEL E-LEARNING EN LOS CENTROS DE EDUCACIÓN
La necesidad de una herramienta de E-learning en establecimientos de este tipo es más
notoria y tangible, a causa de que todos los miembros de estas instituciones tienen como
misión transmitir conocimiento a sus alumnos, y entre más herramientas se tengan, para
garantizar que este proceso sea realizado de una manera más efectiva, mejor será la calidad
de la educación recibida.
Actualmente en el mercado existen muchas herramientas de E-learning, unas de libre
distribución y otras licenciadas; aquellas que tienen licencia ofrecen servicios completos de
manera modular, dándole al cliente la posibilidad de escoger los servicios básicos de la
herramienta, más otros accesorios de software que prestan servicios especializados. El
problema de estas herramientas es que su licenciamiento es muy costoso y no todos los
establecimientos educativos están en capacidad económica de adquirirlas. Por otra parte, las
herramientas de libre distribución ofrecen servicios muy limitados, o versiones Beta de sus
aplicaciones, dándolos como muestras promocionales de software de un producto completo.
En Colombia son pocas las universidades que tienen herramientas de E-learning
licenciadas, sin embargo su gran mayoría se apoyan de herramientas de libre distribución o
de software desarrollado internamente, pero en general la necesidad existe y está
identificada, y tanto universidades, institutos técnicos, y grupos de asesores, están haciendo
uso de este canal para expandir su mercado. A nivel mundial existen muchas universidades
que ofrecen gran cantidad de programas académicos a distancia en diferentes idiomas Los
MBAs son los más populares, así como nuevos Masters que surgen atados a los nuevos
medios de comunicación digital.
De igual forma las universidades de Colombia podrían ofrecer los mismos servicios y los
colegios privados y del gobierno podrían instaurar programas de este estilo para lograr que
más niños en Colombia hagan efectivo el derecho a la educación.12
2.3 CARACTERISTICAS DE UNA BUENA HERRAMIENTA DE SOFTWARE
Según empresas dedicadas al desarrollo de software, un aula virtual debe brindar las
siguientes ventajas:
• Espacios para la comunicación como un Chat, una agenda, un espacio para publicar
anuncios y generar foros de discusión.
• También debe proveer la capacidad para incluir todo el material de un curso,
enlaces a páginas de interés (bibliotecas) y un espacio para tareas y ejercicios.
• Los alumnos deben tener la oportunidad de reunirse en grupos de trabajo y presentar
exámenes
12
Tomado de: http://www.maestrosdelweb.com/editorial/e-learn/ 28 de junio de 2005
32
•
Las aulas son privadas, es decir solo se puede acceder quien esté inscrito en el
curso13
Partiendo de estos requerimientos, se debe tener en cuenta que un aula virtual tiene tres
actores primaros y dependiendo del contexto en donde se implemente podrían surgir nuevos
actores que interactúen con el sistema; estos actores son los siguientes:
• Administrador de la herramienta.
• Profesores.
• Estudiante.
Cada uno de estos actores tiene necesidades y responsabilidades que hacen que la
interacción con la herramienta sea diferente para cada uno de ellos. Mientras el
administrador tiene las responsabilidades del control de usuarios, materias y grupos, los
profesores están más interesados en la creación de exámenes y materiales de trabajo que
publicará a cada uno de los cursos que tiene asignado, para que sus alumnos puedan
adquirir este conocimiento y realizar las actividades propuestas dentro de cada grupo.
Un ejemplo encontrado en Internet de una herramienta de e-learning muestra perfectamente
cómo se abarcan estas necesidades, y cómo se suplen para cada uno de los diferentes roles.
2.3.1
EJEMPLO DE UNA HERRAMIENTA DE E-LEARNING (MODO
ADMINISTRADOR)
Ilustración 6 Aplicación E-learning modo Administrador (http://www.emultimedios.com/siveduc3/demo/ mayo
04/05)
13
Tomado de http://www.colegiovirtual.org/empresa_page.html
33
Esta herramienta contiene los siguientes ítems:
Demo para docentes.
• programa del curso
o descripción del curso
o objetivos generales y específicos
o contenidos
o recursos físicos y humanos
o métodos de evaluación
• agenda
o día de inicio del curso
o días programados
o un calendario para programar actividades
• trabajos
o archivos privados
o archivos publicados
o menú para crear un trabajo
• Chat: medio de comunicación que permita la comunicación en tiempo real con
los usuarios del sistema.
• Usuarios : lista de alumnos inscritos en el curso
• Ejercicios: publicación de tareas
• Anuncios: espacio para publicar información de interés para el grupo
• Material de trabajo: espacio para publicar información de interés para un
grupo
• Foros: sitios de discusión sobre los temas del grupo.
• Enlaces: links a otras paginas de Internet que pueden ser relevantes para
complementar la información de cualquier tema de clase
• Grupos: espacios creados para agrupar estudiantes que desean ver la misma
materia.
34
2.3.2
EJEMPLO DE UNA HERRAMIENTA DE E-LEARNING (MODO
ESTUDIANTE)
Ilustración 7 Aplicación de E-learning modo estudiante(http://www.emultimedios.com/siveduc3/etica/ mayo 04/05)
Básicamente contiene los mismos privilegios pero sin el componente administrativo que
maneja el rol de profesor.
Costos de la herramienta14.
o Setup(instalación) $ 15 una vez
o Aula virtual individual $49 valor mensual
o Precio adicional por usuario $ 1
Basándonos en toda la información recolectada en este documento, nosotros definimos
nuestros propios requerimientos funcionales para nuestros componentes de e-learning.
•
•
Al ser demasiado costosa los servicios de estas herramientas, decidimos que los
componentes de software a desarrollar se hará bajo el contexto de libre
distribución, de tal forma que cualquier entidad que los requiera los pueda tomar
y adaptar a su propio contexto.
Es claro que tanto las PYMES como los centros educativos tienen necesidades
similares cada una de ellos sacará provecho de estos componentes con fines
diferentes.
Ventaja para las PYMES.
capacitación de empleados
capacitación de clientes
14
Los precios ilustrados están en dólares
35
capacitación de proveedores
Ventajas Para los centros Educativos
Soporte para capacitar estudiantes
Creación de centro educativos virtuales
Tomando como base los requerimientos identificados, y en el tiempo planeado para la
investigación, se diseñará nuestra plataforma, y se implementará los componentes de
administración y calificación de exámenes, de forma que sea útil para las PYMES, y los
centros de educación que la soliciten.
2.4
REQUERIMIENTOS FUNCIONALES DE UNA PLATAFORMA DE ELEARNING
A continuación se muestra la lista de requerimientos identificados para el desarrollo de
nuestros componentes de software, Para obtener una información detallada de estos
requerimientos, por favor dirigirse al Anexo A (SRS)15
Comunicación
Chat
agenda
anuncios
foros
Material del curso
enlaces
bibliotecas
tareas
ejemplos
documentos
contenido publicado
Evaluaciones
presentación de exámenes
calificación de exámenes
formar grupos de trabajo
Seguridad
privacidad
manejo de roles
consistencia en información
Administracion
creación de roles
creación de grupos
creación de materias
administración de permisos
procesos CRUD
Tabla 2 Requerimientos para una plataforma de E-learning
15
Software Requirement Specification (Especificación de los requerimientos de Software)
36
CAPITULO 3
3
ANALISIS DE BLACKBOARD Y WEBCT
El objetivo de esta sección es hacer un análisis comparativo entre estas dos plataformas de
E-learning, para de manera poder explorar e identificar los diferentes componentes de
comunicación, administración, evaluación, seguridad, etc. que componen estas plataformas,
y la manera como interactúan con el usuario.
3.1
BLACKBOARD
3.1.1
•
•
•
•
•
3.1.2
•
•
HISTORIA DE BLACKBOARD: En 1997 dos consultores de educación:
Matthew Pittinsky y Michael Chasen, crearon Blackboard LLC, y fueron
contratados para conducir la formación de los estándares IMS para tecnologías de
educación en línea. Por el mismo tiempo un grupo de estudiantes de la universidad
de Cornell desarrollaron un producto de software que seria escalable para un uso
institucional más amplio, reconociendo la gran demanda de este producto y el fácil
uso de la plataforma. Estos dos grupos decidieron unirse para conformar de esta
forma a Blackboard Inc.
Cinco años mas tarde, Blackboard y sus clientes eran pioneros en la industria del Elearning alrededor del mundo, Blackboard satisfacía las necesidades de escuelas
primarias, secundarias, educación superior y entidades gubernamentales.
Blackboard es aplicable a distintas instituciones incluyendo:
Escuelas primarias y secundarias.
Escuelas de condados y universidades virtuales.
Sistemas de comunicación universitarios.
Gobiernos, escuelas y agencias militares.
Empresas y corporaciones.
VENTAJAS DE BLACKBOARD: Las ventajas que se enumeraran a
continuación, son la recopilación de información de usuarios, ventajas de diseño de
la herramienta versus otras plataformas de e-learning.
Es un ambiente reconocido por su fácil aprendizaje, flexibilidad pedagógica, y una
gama muy amplia de servicios que enriquecen el aprendizaje en línea.
Está diseñado con una arquitectura BuildingBlock que le permite integrarse de una
manera fácil con otros sistemas administrativos como:
o SCT.
o SITS.
37
•
•
o Capita.
o Datatel.
o HIS.
o SAP.
o PeopleSoft.
Los costos de enseñanza y soporte tecnológico se reducen a una administración
centralizada.
Plataforma robusta y escalable
o Arquitectura ínter operable, escalable y modular.
o Bases de datos relacional a nivel de administración de cursos.
o Cumplimiento con los estándares IMS, JISC, AICC y SCORM.
3.1.3 HACIENDO UN RECORRIDO POR BLACKBOARD
El siguiente entorno de Blackboard esta configurado para el ámbito de la Pontificia
Universidad Javeriana.
3.1.3.1 INTERFAZ DE ESTUDIANTE
Ilustración 8 Interfaz de presentación de Blackboard (http://uvirtual.javeriana.edu.co/bin/index.pl junio 26/05)
Esta es la interfaz de presentación, en donde se da la bienvenida al usuario y se le invita a
iniciar sesión en el botón que se encuentra justo debajo del escudo de la Pontificia
Universidad Javeriana.
38
Una vez el usuario hace click en este botón, el sistema despliega la siguiente pantalla.
Ilustración 9 Interfaz del validación de usuarios de Blackboard para estudiantes
(http://uvirtual.javeriana.edu.co/bin/login.pl?show_header=no&new_loc=/bin/frame.pl%3Flocale%3Deses%26sel_loc%3D0%26item%3Dmy_inst%261120229912%26&auth_type=SYSTEM&course_id= juni 26/05)
Esta es la pantalla de validación de usuarios en donde el estudiante ingresa su nombre de
usuario y contraseña y automáticamente el sistema identifica el rol que dicho usuario tiene
dentro del sistema.
39
Una vez registrados con el usuario de monitor se tiene la siguiente interfaz:
Ilustración 10 Menú de presentación de Blackboard para estudiantes
(http://uvirtual.javeriana.edu.co/bin/frame.pl?locale=es-es&sel_loc=0&item=my_inst&1120229912& junio 26/05)
Al lado izquierdo de la aplicación se encuentra el conjunto de herramientas que tiene la
aplicación disponible para el alumno. Dichas herramientas son:
•
•
Anuncios: esta modalidad le permite al alumno ver los diferentes anuncios que se
han publicado a lo largo del curso; esta herramienta cumple la función de la
cartelera de un curso. La vista que se tiene en estos anuncios están clasificadas de la
siguiente manera:
o Ver hoy
o Ver últimos 7 días
o Ver últimos 30 días
o Ver todos
Calendarios: el calendario cumple la función de la agenda del curso, en esta
modalidad se pueden programar eventos y consultar los eventos programados, tiene
dos módulos grandes en donde se puede hacer una consulta rápida seleccionando
una fecha en especial y el segundo en donde se puede consultar los eventos del
curso por las siguientes categorías:
o Ver día
40
•
•
•
•
•
•
o Ver semana
o Ver mes
o Ver año
Tareas: esta herramienta le permite al alumno entregar tareas, etiquetándolas con un
nombre, y fecha de entrega. Para el caso del profesor, se le puede dar una fecha de
vencimiento, prioridad, y descripción de la actividad.
Mis calificaciones: le permite al alumno consultar las notas obtenidas durante el
curso
Enviar correo electrónico: esta opción le permite enviar correo electrónico a los
integrantes de la comunidad virtual de e-learning. El alumno selecciona el curso al
que esta inscrito y de ahí puede enviar un correo electrónico a los siguientes
destinatarios:
o Todos los usuarios
o Todos los grupos
o Todos los profesores asistentes
o Todos los profesores
o Seleccionar usuarios
o Seleccionar grupo
Directorio de usuarios: esta opción contiene un buscador de personas dentro del
sistema en donde la búsqueda puede hacerse por:
o Apellido
o Correo electrónico
Libreta de direcciones: contiene el mismo menú del directorio de usuarios, con los
mismos patrones de búsqueda.
Información personal: esta opción le permite al usuario:
o Editar información personal
o Cambiar contraseña
o Establecer unidad de CD: esta opción le permite al usuario publicar su
unidad de CD, para acceso remoto.
o Establecer opciones de privacidad: esta opción le permite al usuario
establecer que información personal quiere publicar.
Viendo este tipo de interfaces, se puede apreciar que la navegabilidad es sencilla y fácil de
ejecutar, el alumno a igual que el profesor tiene todas las herramientas necesarias para
enriquecer el proceso de aprendizaje virtual con la ayuda de esta plataforma.
3.2
WEBCT
La plataforma WebCT corresponde al acrónimo de Web Course Tools y es una herramienta
de software diseñada para facilitar la docencia a través de Internet, permitiendo la
colocación de materiales docentes en un servidor. Estos materiales, en la medida que el
41
profesor así lo decida, estarán accesibles a los alumnos, que pueden así realizar tareas
interactivas con los mismos.
La plataforma de WebCT permite la comunicación entre los distintos protagonistas del
servicio de E-learning como lo son el administrador, los profesores, diseñadores de las
asignaturas y los alumnos, junto con toda la cantidad de servicios como la colación de
materiales complementarios, y el desarrollo completo de una asignatura en línea.
Originalmente WebCT fue publicada en 1997 por el profesor Murray Goldberg, de la
British Columbia University. Y en 1999 fue adquirida como producto comercial por la
Universal Learning Technology, que en 16la actualidad ofrece la versión 3.6 del producto,
bajo la presidencia de profesor Goldberg.
3.2.1 CARACTERISTICAS DE WEBCT
Ilustración 11 Plataforma de WebCT (http://fad.uta.cl/dfad/docum/cedm/1-cl-Luis%20Hern%E1ndez%20Sc%E4ferGim%20Ivy.pdf junio 26/05)
El anterior gráfico (Ilustración 11) muestra la arquitectura definida de WebCT, en la cual se
puede observar importantes componentes como el de cursos interactivos, la administración
de roles, la administración de contenido dinámico de aprendizaje, así como un API para la
conexión de software desarrollado por terceros.
16
Tomado de: http://eo.ccu.uniovi.es/llamaquique/virtual/recursos/profesor/webCTp/leccion1/quees.htm
42
3.2.2
UN RECORRIDO POR WEBCT
3.2.2.1 PRESENTACION DE BIENVENIDA
Ilustración 12 Interfaz de validación de usuarios en WebCT
(http://www.uv.es/ticape/disco/webct/pdf/Manual_Usuario_WebCT.pdf junio 26/05)
Estas es La interfaz de presentación de WebCT, en donde los usuarios ingresan su nombre
de usuario y contraseña para poder acceder a los servicios disponibles en línea del sistema,
dado el caso que se olvide la contraseña, la plataforma tiene sus mecanismos para
solucionar este tipo de inconvenientes.
43
3.2.2.2 ENTRANDO A WEBCT
Ilustración 13 Menú de presentación de WebCT para estudiantes (Adaptado de:
http://www.uv.es/ticape/disco/webct/pdf/Manual_Usuario_WebCT.pdf junio 26/05)
Aquí se tiene el menú principal de la plataforma, desde el punto de vista estudiante, en
donde con solo marcar el link seleccionado se podrá acceder directamente a la actividad
deseada y empezar a trabajar en ella.
Dentro de las principales funciones de WebCT se encuentra:
• Calendario Global: este componente le permite al alumno ver en un solo calendario
las actividades programadas y fechas especiales de uno o todos los cursos en los
cuales esta inscrito.
• Cambio de lenguaje: permite configurar el idioma a la lengua del estudiante.
• Marcadores: permiten resaltar actividades y dentro de la plataforma existen dos
tipos de marcadores:
o Administrador: el estudiante solo los puede ocultar o mostrar.
o Estudiante: permite todos los procesos CRUD.
• Mapa del curso: índice con los enlaces a todos los componentes del curso en línea.
• Ayuda: enlace las paginas de soporte de WebCT.
Herramientas de contenido.
•
•
•
Programa: herramienta para incorporar y presentar el programa del curso
Módulo de contenido del curso: este modulo contiene todas las lecciones y pruebas
del curso
Glosario: contiene la definición de los términos del curso
44
•
•
•
•
Recopilador de Contenido: permite la presentación personalizada de los temas del
curso, en donde se tiene la opción de Imprimir, grabar en un archivo o editar los
contenidos del curso.
CDROM: permite compartir la unidad de CD de la computadora para el manejo de
archivos multimedia.
Motor de búsqueda: permite la búsqueda de temas, o contenidos dentro de los ítems
de un curso.
Banco de imágenes: permite la creación de catálogos y diseño de imágenes que se
mostrarán en el curso
Herramientas de comunicación
•
•
•
•
•
Correo: permite la comunicación entre los diferentes Actores del WebCT
Foros de debate
Calendario
Chat
Pizarra: herramienta que permite la creación de dibujos en línea para dar soporte a
discusiones y explicaciones.
Herramientas de Evaluación
•
•
•
Trabajos: herramienta en donde están contenidos todos los trabajos propuestos por
un profesor.
Exámenes y cuestionarios: herramienta que permite la creación de exámenes con
diferentes tipos de respuesta:
o Selección múltiple
o Respuesta corta.
o Falso/verdadero
o Calculo
o Respuesta larga
Auto evaluación: permite al alumno diseñar sus propias pruebas para estudiar la
habilidad sobre un tema.
Herramientas dirigidas a los estudiantes.
•
•
Progreso: permite ver las partes del curso que han sido visitadas por el estudiante, y
el total de páginas visitadas en el modulo de contenido. Se divide en:
o Perfil del estudiante.
o Distribución de vistas.
o Número de páginas de contenido visitadas.
Mis calificaciones: permite que el alumno consulte las notas obtenidas en la
materia; aquí se pueden ver componentes ajenos a WebCT que el profesor incluya.
45
•
•
Presentación y trabajos en grupo: permite la creación y publicación de proyectos
presentados por más de un estudiante, los estudiantes inscritos en el curso pueden
ver las presentaciones en línea.
Página del estudiante: permite al estudiante crear una pagina personalizada, donde
puede incluir información de interés para el curso.
Haciendo un análisis de estos dos grandes productos de E-learning reconocidos a nivel
mundial, se puede notar que los servicios ofrecidos son similares en cuanto a funcionalidad,
y facilidad de uso pero, conexo a esto, existen factores que no son perceptibles a simple
vista para el usuario, pero que son de vital importancia para la organización que tienen
cualquiera de estas herramientas, a razon de que son los factores que realmente contribuirán
con el objetivo final que es el de enriquecer el proceso de aprendizaje en línea.
Una, y quizás la principal ventaja que tienen estas herramientas es la capacidad de
operación ínter plataforma, puesto que tanto Blackboard como WebCT son capaces de
generar marcos de comunicación basados en tecnología XML para la exportación de datos,
y de esta forma poder establecer esquemas de comunicación con otras plataformas de
educación virtual. Sin embargo, existen problemas con respecto a la compatibilidad e
interpretación de los datos, debido a que por ser estos dos tecnología nuevas, no tiene
definido estándares para la construcción de cursos y manejo de contenidos que hagan que la
migración de un curso de una plataforma como WebCT sea totalmente transparente a una
plataforma como la de Blackboard.
La desventaja que presta esta falla, es que compartir información de calidad y elaborada se
vuelve algo complicado, y resulta más fácil y económico volver a construir un curso en una
plataforma diferente si es el caso, que tratar de hacer la migración desde la plataforma
donde se encuentra montado originalmente.
Para solucionar este problemas, múltiples empresas e instituciones se ha dedicado a
desarrollar en los últimos tres años estándares de E-learning que intentan solucionar este y
otros problemas a los que se enfrentan esta tecnología.
Otra ventaja que tienen estas herramientas es la gran facilidad que tiene para la integración
con aplicaciones, esquemas y diseños HTML desarrollados por terceros, permitiendo de
esta forma enriquecer el contenido y la presentación de un curso vía Web.
46
CAPITULO 4
4 DESARROLLO DE LOS COMPONENTES DE E-LEARNING
Una vez identificada la tecnología sobre la cual se desarrollaran los componentes, se
procedió a identificar con claridad el alcance de cada componente, y los servicios que estos
ofrecerían a las aplicaciones que los consumiera; por tratarse de componentes de ELearning se decidió que cada componente debería diferenciarse de cualquier otro tipo de
componente en su aspecto funcional y en su alcance en términos de granularidad, así que se
partió con la base de que estos componentes ofrecerían servicios completos dentro del
contexto y la naturaleza de cada uno de ellos, con el fin que dentro del mundo del software
del E-learning, estos componentes sean lo más desacoplados posibles, pero que al mismo
tiempo su funcionalidad sea integral.
El entorno de desarrollo que se usará será el visual Studio.Net 2003, junto con la versión
1.1 del framework de .net, y el lenguaje de programación seleccionado es C#. Este leguaje
se escogió teniendo en cuenta las propiedades que ofrecen ventajas en el desarrollo como es
la similitud es la sintaxis con Java y el entorno que brinda el .Net Framework para el
desarrollo de aplicaciones Web basadas en este lenguaje.
Analizando los recursos limitados con los que contamos como lo es el tiempo, decidimos
desarrollar dos componentes de software. El primer componente es un módulo
administrativo que prestará los servicios manejo de usuarios, materias, y grupos por cada
materia, anexo a esto cada grupo podrá guardar la información de los materiales que son de
interés para el grupo, y el segundo componente se encargará de controlar todo lo respectivo
a evaluaciones, reportes estadísticos e indicadores de interés para el estudiante y el
profesor.
4.1 DESARROLLO DEL PRIMER COMPONENTE
El primer componente a desarrollar será el componente administrativo. Como se mencionó
anteriormente este es el encargado del manejo de usuarios, materias y grupos dentro de una
plataforma de E-Learning. A su vez este componente es el contenedor de toda la
información suficiente para prestar los servicios necesarios que requiere una aplicación u
otros componentes que en determinado momento necesiten acoplarse con el.
47
4.1.1
IDENTIFICACIÓN DE REQUERIMIENTOS: La especificación formal de
requerimientos, se realizo basándose en el estándar de la IEEE, y la plantilla del
SRS del RUP, estos documentos, se pueden ver en el anexo A (Especificación De
Los Requerimientos De Software).
4.1.2
ESPECIFICACION: En esta etapa del desarrollo se buscó identificar qué posibles
componentes se podían generar, y los servicios que publicarían en su interfaz. Para
el caso de este componente administrativo se decidió partirlo en dos capas:
Capa de acceso a datos: esta capa se encarga de hacer el manejo de toda la parte de
datos independiente de la fuente de datos.
Capa de Lógica de negocio: esta capa se encarga de modelar la lógica del
administrador, y se encarga de implementar los servicios en la interfaz.
•
•
Para definir la funcionalidad del componente se partió del diagrama de SRS y del diagrama
de casos de uso, y se decidió agrupar requerimientos tomando como criterio las necesidades
de cada usuario del sistema. Acordes a su rol dentro de este. Una vez se identificó esas
necesidades se procedió a esquematizarlas en dos grupos diferentes para ir definiendo la
funcionalidad de cada componente.
La lista de Requerimientos asignados acorde a los tipos de usuario fue la siguiente:
Administrador:
• Crear usuario
• Consultar usuario
• Modificar Usuario
• Eliminar Usuario
• Crear Materia
• Crear Grupo
• Asignar Profesor
• Asignar Alumno
• Consultar Materia
• Consultar Grupo
• Modificar grupo
• Eliminar Grupo
• Modificar Materia
• Eliminar Materia
• Cambiar Contraseña.
Profesor
• Cambiar contraseña.
• Consultar los grupos a su cargo.
48
•
•
Consultar la lista de estudiantes de cada grupo.
Ver la información de los alumnos a cargo de el en los diferentes grupos.
Alumno
• Consulta Materia
• Consultar Documentos
• Descargar Documentos
• Cambiar contraseña.
• Consultar los cursos en los que se encuentra inscrito.
• Ver la lista de compañeros de grupo.
• Consultar la información del profesor del grupo.
Una vez definidos los requerimientos que implementara el componente, se decidió que este
componente seria el núcleo de nuestra plataforma de E-learning, ya que el es el experto en
el manejo de la información, y esta en la capacidad de suministrarla a cualquier
componente que se conecte por medio de su interfaz.
4.1.2.1 ARQUITECTURA DEL COMPONENTE: El componente de administración se
desarrollo en una arquitectura de dos capas, dicha arquitectura surge de la
necesidad de comunicar los componentes en ambientes distribuidos, la
arquitectura mas conocida en dichos ambientes es la arquitectura de dos capas, o
también llamada Cliente/Servidor, en donde el cliente (usuario de la aplicación)
contiene toda la interfaz grafica para la interacción con el sistema, y el servidor de
aplicaciones es el encargado de prestar los servicios que solicita el cliente.
Como la aplicación final consta de tres capas, a continuación presentaremos algunas
ventajas y desventajas de esta solución.
Ventajas de una arquitectura de tres capas.17
•
•
Las llamadas de la interfaz de usuario al servidor de aplicaciones son más flexibles
que en una arquitectura de dos capas, a causa de que solo se necesita transferir
parámetros.
La interfaz del cliente no es requerida para entender o comunicarse con el receptor
de los datos, por lo tanto es más fácil hacer una modificación sin tener que cambiar
la interfaz del cliente.
17
Tomado de:
http://www.janium.com/phpws/index.php?module=documents&JAS_Document_op=downloadFile&JAS_File_id=
1
49
•
•
•
La capa intermedia puede migrar de una manera más fácil a otras plataformas de
datos, y su código puede ser reutilizable en otras aplicaciones si se realizó en forma
modular.
La separación de tres capas hace mucho más fácil la actualización de cada una de
ellas, sin que se afecten entre sí.
Las estaciones de trabajo son mucho más livianas, y permite que la lógica se
concentre solo en el servidor.
Desventajas de una arquitectura de tres capas.
•
•
Los ambientes de tres capas incrementan el tráfico en la red, y es necesario que sean
más robustos y tolerantes a fallas.
Los navegadores no son todos iguales, y en muchos casos las empresas tienen que
decidir por un proveedor específico.
El esquema de la arquitectura del componente es:
Ilustración 14 Arquitectura del Componente de Administración
Esta arquitectura modela la capa de reglas del negocio y datos, y posteriormente la
aplicación Web proveerá la interfaz para que interactúe con los clientes del sistema.
4.1.2.2 CONTRATO DE USO
Para la correcta funcionalidad de este componente, es necesario que sea consumido por
aplicaciones desarrolladas sobre el framework de .NET, ya que todo lo que conforma el
componente de Administración, fue realizado en C#.
50
4.1.2.3 CONTRATO DE SERVICIOS
Aquí están especificados los servicios de la interfaz, y lo necesario para consumir el
servicio. Anexo a la documentación de la interfaz del componente, la lista de servicios se
encuentra detallada específicamente en el anexo C de este documento, donde se ubica el
SDD del componente de administración.
4.1.3 APROVISIONAMIENTO
El código de estos componentes está implementado en C#, y se encuentra anexo a este
documento en un CD-ROM junto con toda la especificación del componente en el
directorio fuentes.
4.1.4 ENSAMBLADO
La etapa de ensamblado se realizaron en el capitulo seis de esta investigación con el
desarrollo del prototipo funcional.
4.1.5 PRUEBAS
Las pruebas se realizaron con el formato estándar de la IEEE anexo al documento, con el
fin de encontrar errores en la funcionalidad del componente.
4.1.6 DESPLIEGUE
Para efectos de esta investigación, la aplicación no será implementada dentro de un
ambiente real, sin embargo, serán cargados algunos grupos y se hará una demostración de
su funcionamiento dentro del entorno de la Pontificia Universidad Javeriana.
4.2 DESARROLLO DEL SEGUNDO COMPONENTE
El segundo componente que se desarrolló fue el de evaluación, este componente es el
encargado de mantener un repositorio de preguntas, y con base a este construir exámenes,
permitir que los estudiantes puedan presentar las evaluaciones, calificarlos, y generar
reportes.
4.2.1 IDENTIFICACION DE REQUERIMIENTOS
Para la identificación de los requerimientos en este componente, se tomó como base el
estudio realizado a las plataformas BlackBoard y WebCT, teniendo en cuenta los resultados
que se obtuvieron, se estudiaron las necesidades que suplen dichas plataformas en el
campo de evaluación.
Además, se realizaron estudios de herramientas de evaluación de libre distribución, la
mayoría de ellas desarrolladas por universidades de Canadá, las cuales ayudaron a
especificar más requerimientos que debían ser contemplados en este componente.
Claro está que además de lo anterior, los requerimientos aumentaron según la
especificación de requerimientos general realizada a principio de esta investigación,
51
teniendo en cuenta los aspectos que debe tener una herramienta para suplir las necesidades
a nivel nacional en Colombia.
De acuerdo a lo mencionado anteriormente, los requerimientos que resultaron del análisis
fueron los siguientes:
Profesores
• Crear preguntas.
• Consultar preguntas
• Eliminar preguntas
• Modificar preguntas
• Creación de temas
• Eliminación de temas
• Actualización de temas
• Consulta de temas
• Creación de exámenes
• Eliminación de exámenes
• Modificación de exámenes
• Inscripción de usuarios a un examen
• Eliminar un usuario de un examen
Estudiantes
• Consultar los exámenes en los que se encuentra inscrito
• Presentación de examen
• Consulta de notas
La especificación formal de requerimientos, se realizo basándonos en el estándar de la
IEEE, y la plantilla del SRS del RUP, estos documentos, se pueden ver en el anexo A.
4.2.2 ESPECIFICACION
El componente fue desarrollado mediante una arquitectura lógica de tres (3) las cuales son:
•
•
•
Base de datos: Se realizó un diseño de la base de datos, teniendo en cuenta los
requerimientos a suplir por parte del componente.
Acceso a datos: Esta capa se encarga de acceder a los datos almacenados en la base
de datos, ofreciendo servicios al componente que le permiten obtener información,
así como actualizarla, eliminarla o crear nueva información.
Lógica de negocio: Esta capa es la que se encarga de realizar las operaciones que
conciernen a lo que realiza el componente de evaluación. Solicita servicios al
componente de acceso a datos, para de esta manera poder cumplir sus tareas del
negocio.
52
4.2.2.1 ARQUITECTURA DEL COMPONENTE
La arquitectura que fue tomada como base para el desarrollo de este componente es igual a
la especificada en el componente de administración, por tal razón no se entrara en el detalle
de esta nuevamente. Sin embargo el lector puede consultar el detalle de esta arquitectura en
el anexo D que contiene la especificación del componente de evaluación.
Ilustración 15 Arquitectura Componente de Evaluación
4.2.2.2 CONTRATO DE USO
Para la correcta funcionalidad de este componente, es necesario que sea consumido por
aplicaciones desarrolladas sobre el framework de .NET, ya que los componentes
anteriormente mencionados que conforman el componente de evaluación, fueron realizados
en C#.
4.2.2.3 CONTRATO DE SERVICIOS
Aquí se especifican los servicios de la interfaz y lo necesario para que consumir el servicio.
El lector puede consultar el detalle de esta arquitectura en el Anexo D que contiene la
especificación del componente de evaluación.
4.2.3 APROVISIONAMIENTO
Este componente fue desarrollado en su totalidad por medio de C#, debido a su similitud
con Java, lenguaje con el cual se tiene familiaridad debido a los proyectos desarrollados a
través de la carrera.
La base de datos fue realizada en SQL Server, en donde se realizaron procedimientos
almacenados que implementan parte de la lógica de negocio, para de esta forma separar aún
53
más la aplicación, dejando una mantenibilidad bastante grande y fácil del código, puesto
que si en algún momento se cambia algún proceso del negocio, sólo se ve afectado el
procedimiento, sin necesidad de cambiar el código del componente.
En el componente se tiene una interfaz que provee servicios a las aplicaciones que los
consuman, servicios que vienen documentados como se puede apreciar en los anexos C y
D, además de esto, se implementaron WebServices que ofrecen los servicios del
componente. Aunque estos últimos no son consumidos por la aplicación, se demuestra con
esto la potencialidad de la herramienta en cuanto a conectividad y consumo de sus
servicios.
El código de este componente está implementado en C#, y se encuentra anexo a este
documento en un CD-ROM junto con toda la especificación del componente.
4.2.4
ENSAMBLADO: La etapa de ensamblado se realizará en el capítulo 6 de esta
investigación junto con el componente administrativo con el desarrollo del prototipo
funcional.
4.2.5
PRUEBAS: Las pruebas fueron realizadas el día sábado 28 de mayo del año en
curso en las instalaciones de la facultad de ingeniería de la Pontificia Universidad
Javeriana, y contó con la participación de varios estudiantes de la misma, cuya lista
se puede ver en el documento de pruebas (anexo G)
Las pruebas específicas del componente consistieron en realizar procesos CRUD sobre él,
procesos que, en su gran mayoría, están disponibles para el rol Profesor, en razón de que
este es el encargado de crear preguntas, respuestas, y exámenes, los cuales van a ser
presentados posteriormente por los estudiantes.
En las pruebas se crearon exámenes por medio del rol profesor, y los participantes de las
pruebas fueron los encargados de conectarse a la aplicación y presentar los exámenes
creados. La especificación de estas pruebas, así como de los resultados, se encuentran en el
documento de pruebas, anexo a este documento.
El lector puede consultar el detalle del plan de pruebas en el anexo G.
54
CAPITULO 5
5 DESARROLLO DEL PROTOTIPO FUNCIONAL
El desarrollo de este prototipo funcional, tuvo como objetivo completar las fases de
ensamblado y pruebas de los componentes desarrollados, demostrando así la correcta
funcionalidad de los mismos, y el potencial que estos tienen.
El entorno de desarrollo usado para este prototipo fue el que provee Visual Studio .NET
2003, además del framework de .NET en su versión 1.1. La elección de esta plataforma de
desarrollo obedece al estudio realizado durante la investigación entre las plataformas de
J2EE y .NET, resultados que se pueden apreciar en el documento anexo H (selección de
herramienta de desarrollo).
Teniendo en cuenta los servicios ofrecidos por los componentes, así como los roles que
debe soportar el sistema, se realizaron dos aplicaciones separadas, una para el componente
administrativo y otra para el componente de evaluación, las cuales fueron desarrolladas en
paralelo por los investigadores, teniendo en cuenta el límite de tiempo con que se contaba.
Estas dos aplicaciones resultantes, después de pruebas internas para probar su correcta
funcionalidad, fueron unidas en una gran aplicación que conforma el prototipo funcional de
“LearnCity”, nombre con el cual fue bautizada la plataforma de e-learning desarrollada.
Esta unión de las dos aplicaciones en una sola, obedece a mantenibilidad de la sesión del
usuario, puesto que la única razón de tenerlas divididas era el desarrollo en paralelo, y las
pruebas internas realizadas por cada investigador.
De esta manera se unieron ambas aplicaciones, cuyo resultado se describe a continuación:
•
•
•
Se tiene una pantalla de Ingreso de Usuarios, en la cual cada usuario puede ingresar
su Login y Password para el ingreso al sistema.
Posteriormente se llega a una pantalla en la que se puede seleccionar el rol con el
cual se desea ingresar al sistema. Esto teniendo en cuenta que en la plataforma de elearning “LearnCity”, un usuario puede tener asignados varios roles en la misma
aplicación, permitiéndole de esta manera ser profesor y/o estudiante y/o
administrador de la plataforma.
A partir de la selección del rol, la aplicación se divide en las pantallas que le ofrecen
los servicios disponibles para dicho rol seleccionado, permitiendo un control y
seguimiento de las tareas realizadas por el usuario en la plataforma.
Además de la investigación, la implementación de resultados de la investigación, y demás
factores que influyeron en el desarrollo del prototipo, se contó con la colaboración de una
artista plástica de la Universidad Nacional de Colombia, la cual colaboró bastante en la
55
asignación de colores y la distribución de los objetos en las interfaces gráficas, para de esta
manera hacer unas interfaces más agradables a la vista del usuario. Es importante recalcar
que esta colaboración, aunque fue de gran ayuda y aporte, no fue completa, debido al poco
tiempo con que se contó para esto.
5.1 DESARROLLO DEL PROTOTIPO FUNCIONAL
El prototipo funcional, se construirá haciendo uso de los componentes, así que esta
consumirá el componente de evaluación y administración respectivamente.
Ilustración 16 Arquitectura de LearnCity
La arquitectura de esta aplicación se componen de:
Descripción de la arquitectura.
• LearnCity: Se refiere a lo que es en sí la aplicación, ella consume los componentes a
través de su interfaz y los estructura para darle sentido dentro de un contexto
académico. A nivel de código, hace referencia a lo que conforma toda la aplicación
Web.
•
Componente Administración: Este componente es el contenedor de toda la
información y la lógica del negocio, el es el encargado de contener y controlar a
todos los usuarios grupos, materias, Documentos etc., y relacionarlos entre si de una
forma consistente para que sean consumidos a través de su interfaz.
•
Componente Evaluación: este componente es el contenedor de un gran repositorio
de preguntas, que puede ser usado en cualquier momento para la creación de
exámenes que se podrán ejecutar desde la aplicación de LearnCity
56
Si el lector esta interesado en conocer en detalle las especificaciones de cada uno de los
componentes de software de la aplicación, podrá encontrar información en el SDD de cada
componente en el anexo C y D.
El valor agregado que se da con esta aplicación es que se demuestra que los componentes
son funcionales y operan correctamente en un ambiente Web, la aplicación consumió los
servicios de cada componente, y los integró por medio de su interfaz grafica, dándole al
usuario final la idea de una sola herramienta consistente y funcional, sin embargo
observando a nivel arquitectónico es posible darse cuenta que existen dos componentes
grandes que hacen el papel de pilares de la plataforma.
Otra de las características de este prototipo es la apariencia, puesto que ésta se puede
reconfigurar de una manera muy fácil, modificando el archivo CSS (estilo de presentación),
la pagina ASPX, y la carpeta de imágenes. Todo esto para que la herramienta quede
personalizada con los colores y el logotipo de la institución que la adquiera, y siempre con
la seguridad de que no se dañara el código de las reglas del negocio que soporta el
prototipo.
Una vez instalada la aplicación dentro de un ambiente de producción, su arquitectura física
tendrá las siguientes características:
Ilustración 17 Arquitectura Física de LearnCity (Adaptado de:
http://www.microsoft.com/spanish/msdn/arquitectura/das/distapp.asp mayo 04/05)
Cliente.
Es el usuario final de la Aplicación, y por medio de un Browser (Internet Explorer 5.5,
Netscape 7, Mozila), podrá acceder a la aplicación de LearnCity.
El estilo de las fuentes y su apariencia, se ve correctamente cuando se accede a la
aplicación desde el Web Browser Internet Explorer v 5.5 o superior, sin embargo en otros
57
navegadores como Mozila de Linux la apariencia y el estilo varia, al no asimilar los estilos
de los controles de la aplicación.
Servidor Web.
Es el encargado de procesar todos los requerimientos del usuario, aquí también esta
contenida y administrada toda la interfaz del usuario.
Aplicación Web.
La aplicación de servidor procesa toda la lógica de negocio que esta dividida en dos
componentes.
•
•
Administración: LearnCity provee al administrador un manejo fácil de la aplicación.
Aquí se proveen los servicios para la administración de materias, grupos, usuarios y
perfiles.
Evaluación: LearnCity provee los servicios para la ejecución y administración de
exámenes en línea basándose en un robusto y consistente repositorio de preguntas
que puede ser alimentado por los usuarios con el perfil de “profesor” en el sistema.
Almacenamiento.
La capa de datos de LearnCity es controlada por cada componente que se integre a ella, sin
embargo, los componentes actuales con los que funciona esta versión preliminar usan el
motor de bases de datos de SQLServer.
Plan de Pruebas.
Al realizar y ejecutar el plan de pruebas del prototipo se verifico que el funcionamiento de
los componentes era el esperado, y se identificaron algunas fallas que posteriormente
fueron corregidas, comprobando así, que los dos componentes están operando
correctamente, y son una excelente opción para que las instituciones que estén interesadas
en el e-learning usen este prototipo funcional, o la librería de componentes desarrollada
para la creación de sus propias plataformas.
Con esta etapa se culmina el ensamblado de cada componente y su correcto funcionamiento
dentro del ambiente de pruebas.
Cabe aclarar que cualquier componente anexado a esta plataforma solo necesita referenciar
el conjunto de librerías del nuevo componente al proyecto y posteriormente desde la
aplicación consumir los servicios. Si los nuevos componentes necesitan información de
algunos de los ya ensamblados, la mejor forma para realizar dicha tarea es tratar de
convertir los parámetros de respuesta de un componente, en los parámetros de entrada del
otro, con eso se conserva el encapsulamiento, y no se crean dependencias funcionales entre
ellos.
58
6
CONCLUSIONES
•
Los componentes de software para e-learning implementados en esta investigación,
contribuyen de una manera efectiva a implementar aplicaciones de e-learning a un
menor costo, brindando la posibilidad de que más centros de educación y PYMES
puedan acceder a esta tecnología de una manera más cómoda y de esta forma
promover y difundir el conocimiento.
•
A través del trabajo realizado en esta investigación, y especialmente en el
levantamiento de requerimientos, se pudo observar que las organizaciones que
invierten dinero en tecnologías de e-learning, terminan invirtiendo más tiempo y
dinero a la herramienta de software, que al contenido propio del curso, dejando
muchas veces el contenido de los cursos con materiales de poca calidad que
empobrecen el proceso de aprendizaje en línea.
•
Las ventajas ofrecidas por el e-learning y las tecnologías de telecomunicaciones
han brindado a los centros de educación superior nuevas oportunidades de negocio,
al poder ofrecer programas de entrenamiento académico de nivel superior como
maestrías, especializaciones, etc., de forma no presencial.
•
Las plataformas de e-learning tienen mucho campo de aplicación en sector
empresarial, así como en el sector educativo, brindándoles a todos ellos ventajas en
sus procesos de educación.
•
Los componentes de software son una gran ventaja en el desarrollo de software,
permitiendo no sólo integrarlos para formar un gran sistema, sino ser usados de
manera independiente, ofreciendo de esta manera una solución mucho más portable.
•
Los avances tecnológicos abren muchas puertas para el desarrollo de nuevos
sistemas, y/o una mejora, o nuevas formas, en la comunicación de otros. El elearning está avanzando en todos los aspectos, invadiendo campos como el de los
dispositivos móviles, tales como PDA, celulares y demás dispositivos portables.
59
7
CONTINUIDAD DEL TRABAJO DE GRADO
•
Los componentes desarrollados tienen su propia capa de acceso a datos modelada
para entablar conexión con bases de datos relacionales, sin embargo existe la
posibilidad de conectarse con fuentes de datos diferentes como XML, bases de
datos no relacionales, etc. y en base a la especificación y documentación de los
componentes, se puede agregar a la capa de datos de los componentes dicho
esquema de conexión, para ampliar la portabilidad y funcionalidad de los mismos.
•
Una plataforma de E-learning puede ofrecer múltiples servicios a sus usuarios, y
cada servicio, o conjunto de servicios pueden ser potencialmente nuevos
componentes, se desarrollaron solo dos de estos, pero quedaron identificados
componentes que en base a los servicios ofrecidos por los ya desarrollados, pueden
enriquecer la comunicación entre los usuarios de la plataforma como lo son:
o Chat
o Agenda
o Anuncios
o Foros
o Bibliotecas
•
Las nuevas tecnologías nos brindan más ventajas para el acceso a la información. Se
podría implementar un acceso a la plataforma desde dispositivos móviles, tales
como celulares, PDA y demás, entrando así a una nueva rama de la educación
virtual que está emergiendo, llamada m-learning.
•
Se puede realizar una investigación más a fondo en los temas de Human-Computer
Interaction (HCI) y Software Engineering Ergonomics, la cual puede realizarse, de
manera opcional, en un grupo multidisciplinario integrado por diseñadores e
ingenieros y estudiantes, para de esta manera realizar interfaces más amigables para
el usuario, e incentivar el acceso a la plataforma.
•
Se podría realizar una investigación más enfocada hacia el contenido de la
educación virtual, permitiendo que la plataforma aumente en cuanto al contenido de
su información, entregando información de mayor calidad al usuario.
•
La multimedia es un campo de gran acción en el mundo del e-learning, ya que su
propiedad de interacción con el usuario puede proveer grandes ventajas en modelos
de educación y contenidos de la misma. Se podría realizar un componente que
permitiera contenidos multimedia en la plataforma, para de esta manera hacerla más
llamativa al usuario final.
60
•
Teniendo en cuenta que la plataforma puede ser usada por instituciones, grandes y/o
pequeñas, ya sean colegios, universidades o PYMES, se debe tener en cuenta que
estas instituciones pueden tener otros sistemas que permitan el manejo y
manipulación de la información para intereses propios. Se podría realizar un
componente que permitiera la integración de la plataforma de e-learning, con los
sistemas internos de la empresa, para de esta manera hacer una solución más
atractiva para las instituciones que la puedan adquirir.
61
GLOSARIO
A
•
•
•
Acoplamiento: Se refiere al grado en el cual cada módulo de un programa depende
de otro módulo.
Ancho De Banda: Término usado para describir la cantidad de datos que pueden
ser transmitidos a través de una conexión de red. La capacidad de transmisión de un
medio dado, en términos de cantidad de datos que el medio puede transmitir en
determinada cantidad de tiempo. Entre más grande sea el ancho de banda, más
rápida será la rata (frecuencia) de transmisión de datos.
ASCII: (American Standard Code for Information Interchange) Es un estándar para
la representación digital de letras, números, y códigos de control, entendido por la
mayoría computadores.
B
•
BIT: Es la unidad más pequeña de información con la que un computador puede
trabajar. Cada bit es o uno (1) ó cero (0). Un conjunto de ocho (8) bits conforman
un (1) byte.
C
•
•
•
•
Colombia Aprende: Portal de educación virtual lanzado por Ministerio De
Educación De Colombia. (http://www.colombiaaprende.edu.co)
Contenido Personalizable: Contenido que puede ser cambiado por el usuario a su
gusto.
Compilación: Proceso de transformar un programa, realizado por un desarrollador,
de lenguaje común a lenguaje entendible para la máquina.
Computación Distribuida: Consiste en una colección de computadores anónimos
unidos por una red, y equipados con software distribuido. El software distribuido
permite a los computadores coordinar sus actividades y compartir recursos del
sistema (hardware, software y datos)18.
D
•
18
Digitalizar: Representar información en términos de bits, los cuales pueden ser
entendidos por el computador.
George Coulouris. “Distributed Systems: Concepts and design”.
62
E
•
•
•
Ejecutable: Programa que se puede correr en una máquina (computador).
Entorno: Escenario en el cual se puede ejecutar un software. Esto involucra tanto la
parte de hardware, así como la plataforma sobre la cual se ejecuta (Sistema
Operativo), y otros factores de los actores que interactúan en él.
Extranet: Un tipo de sitio de Internet, el cual está cerrado a la comunidad mediante
protección por medio de contraseñas y/o firewalls. Típicamente son sitios ofrecidos
por negocios para sus proveedores y clientes claves.
F
•
•
Framework: Un esqueleto que provee los componentes esenciales de una
aplicación. Los frameworks son buenos para proveer un punto de inicio para la
creación de aplicaciones, así como para definir la funcionalidad mínima de una
aplicación.
Firewall: Sistema de seguridad, usualmente para computadores conectados a una
red, el cual controla el acceso hacia y desde la red.
G
•
Granularidad: La extensión en la que un sistema contiene componentes separados.
Entre más componentes tenga un sistema, o entre más granularidad, es más flexible.
I
•
•
•
19
Ingeniería De Software: La construcción de software de calidad con un
presupuesto limitado, con un límite de tiempo dado en un contexto de cambio
constante.19
Instancia: Un escenario específico de una clase. (Por ejemplo: Una clase puede ser
Animal, y una instancia de la clase animal puede ser Perro).
Internet: Es una gran red que conecta muchas pequeñas redes de computadores, y
permite a todos los computadores el intercambio de información entre ellos. Para
cumplir esto, todos los computadores en Internet deben usar un conjunto de reglas
comunes para comunicación. Dichas reglas son llamadas protocolos, y el Internet
usa un conjunto de protocolos llamados TCP/IP (Transmisión Control
Protocol/Internet Protocol). Muchas personas asocian el WWW (World Wide Web)
con el Internet. De hecho, Internet es como la autopista, y el WWW es como un
camión que usa dicha autopista para ir de un lugar a otro.
Bruegge y Dutoit. “Object-Oriented Software Engineering”.
63
•
Intranet: Una red privada interna basada en TCP/IP, usualmente para la
información interna de una organización.
L
•
•
LAN: (Local Area Network) Una transmisión privada que interconecta
computadores dentro de una edificación, o entre edificaciones, con el propósito de
intercambiar información.
Lenguaje: Vocabulario y un conjunto de reglas gramaticales para ordenar al
computador a realizar tareas específicas.
M
•
•
Macromedia: Empresa fundada en 1984 dedicada a desarrollo de software
especializado para multimedia.
Multimedia: El uso de video, audio, texto e interacción con el usuario que puede
proveer un software.
O
•
Objeto: Una instancia de una clase.
P
•
•
•
Polimorfismo: Es la habilidad de los objetos de diferentes clases que están
relacionados mediante la herencia para responder en forma diferente al mismo
mensaje. El mismo mensaje que se envía a muchos tipos de objetos diferentes toma
“muchas formas”, y de ahí viene el término polimorfismo.
Programación: elaborar programas (serie ordenada de operaciones) para la
resolución de problemas mediante ordenadores
PYMES: Pequeñas y medianas empresas.
R
•
Red De Comunicaciones: Un grupo de computadores que se encuentran
conectados, y disponibles para compartir información; una red puede ser “punto a
punto”, o puede ser configurada como una arquitectura Cliente – Servidor. En una
arquitectura Cliente – Servidor se tiene una máquina específica (computador) en la
cual las aplicaciones, o una base de datos residen. Las máquinas de los clientes
tienen acceso al servidor para obtener información, o para ejecutar una aplicación.
64
•
Robustez: La capacidad que tiene una aplicación de funcionar y responder
correctamente ante situaciones y ambientes no ideales.
S
•
•
•
•
Servidor: Es un programa que recibe una solicitud, realiza el servicio requerido y
devuelve los resultados en forma de una respuesta a otra aplicación denominada
cliente que fue la que solicitó el servicio.
Sistema Distribuido: Conjunto de computadores independientes que parece ante
los usuarios una única y sola plataforma o computadora.
Software: Una serie de instrucciones que le dicen al computador qué tiene que
hacer.
Standalone: Aplicaciones (software) que no necesita de una conexión a red, o de
alguna comunicación con otros programas.
T
•
Transacción: El término transacción describe una secuencia de operaciones con
uno o más recursos (por ejemplo una base de datos) que transforman su estado
actual en un nuevo estado de consistencia basándose en los principios de
atomicidad, consistencia y durabilidad.
U
•
•
UML: (Unified Modeling Language) Estándar para modelar (diseñar) el software.
UNAD: Universidad Nacional Abierta y a Distancia.
V
•
Virtual: Ambiente generado por el computador.
65
BIBLIOGRAFIA
Pedro Javier Espeso Martínez. Diseño Componentes Software Tiempo Real
[Documento en formato pdf], 1 ed. publicada en el 2002, Visitado [04 may. 05]
disponible en:
http://ccc.inaoep.mx/~josemcr/TECNOLOGIA%20ORIENTADA%20A%20OBJE
TOS/Proyecto-pem.pdf
Blackboard Learning System MT. [Documento html], 1 ed. Visitado [02 jul, 05]
Disponible en:
http://uvirtual.javeriana.edu.co/bin/index.pl
eMultimedios.com “Creadores de sueños en Internet”. [Documento html], 1 ed.
Visitado [02 jul, 2005] Disponible en:
http://www.emultimedios.com
Colombia Aprende. [Documento html], 1 ed. Visitado [02 jul, 2005] Disponible en:
http://www.colombiaaprende.edu.co
Jonás A. Montilva C. Desarrollo de software basado en componentes [Presentación
PowerPoint], 1 ed, publicada en el 2004, Visitado [04 may. 05] Disponible en:
http://ulaweb.adm.ula.ve/DSIA/presentaciones/2a%20Charla%20DSIA%20Compon
entes.ppt
Geoffrey Sparks, Sparx Systems, Australia. El modelo de componentes [Documento
en formato pdf], 1ed. Visitado [04 may. 05] Disponible en:
http://www.sparxsystems.cl/WhitePapers/El_Modelo_de_Componentes.pdf
Cisco System. Cisco E-Learning [Documento html] 1 ed. publicado [13 abril 2004],
Visitado [04 may. 05] disponible en:
http://www.cisco.com/global/co/ee/el/index.shtml
Nicolás Hellers. El Boom del e-Learning [Documento html] 1 ed. Publicado [22
abril 2002], Visitado [04 may. 05] disponible en:
http://www.emagister.com/f_artic.cfm?next_page=form&id_artic=858
Christian Van Der Henst S. E-Learning [Documento en formato PDF], 1 ed.
Publicado [16 octubre de 2002], Visitado [04 may. 05] disponible en:
http://www.maestrosdelweb.com/editorial/pdf/e-learn.pdf
ColegioVirtual.Org. Todo lo que su empresa necesita en E-Learning [Documento en
formato html], 1 ed. Publicado [2003], Visitado [04 may. 05] disponible en:
66
http://www.colegiovirtual.org/empresa_page.html
WebCT. ¿Que es el WebCT? [Documento en formato html], 1 ed. Publicado
[febrero de 2002], Visitado [04 may. 05] disponible en:
http://eo.ccu.uniovi.es/llamaquique/virtual/recursos/profesor/webCTp/leccion1/quee
s.htm
Luis Eduardo Hernández Schäfer. Estado actual y futuro de las plataformas de ELearning [Documento en formato html]. 1 ed. Visitado [04 may. 05] disponible en:
http://fad.uta.cl/dfad/docum/cedm/1-cl-Luis%20Hern%E1ndez%20Sc%E4ferGim%20Ivy.pdf
Sergio Cubero. Manual de WebCT para el estudiante [Documento en formato pdf],
versión 3.8. Visitado [04 may. 05] disponible en:
http://www.uv.es/ticape/disco/webct/pdf/Manual_Usuario_WebCT.pdf
Jorge Serrano Pérez. .Net Framework, uno para todos, y todos para uno [Documento
en formato html].1 ed. Visitado [04 may. 05] disponible en:
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art65.asp
Microsoft. Desarrollador 5 estrellas Capitulo 1 el framework de .Net versión 1.1
[Documento en formato html] 1 ed. Visitado [04 may. 05] disponible en:
http://www.microsoft.com/spanish/msdn/comunidad/dce/default.asp
Microsoft. Programa de entrenamiento Académico “Programming with the
Microsoft.Net framework” workbook1 2349B
Janium Technology: Ideas transformadas en tecnología. [Documento html], 1 ed.
Visitado [05 nov, 2004] Disponible en:
http://www.janium.com/phpws/index.php?module=documents&JAS_Document_op
=downloadFile&JAS_File_id=1
Sun Micro System. Java 2 Platform, Enterprise Edition (J2EE) Overview
[Documento en formato html] 1 ed. Visitado [04 May 4, 2005] disponible en:
http://java.sun.com/j2ee/overview.html
Sun Micro System. Platform Services [Documento en formato html] 1 ed. Visitado
[04 May 4, 2005] Disponible en :
http://java.sun.com/j2ee/setstandard.html
Sun Micro System. Enterprise Application Model [Documento en formato html] 1
ed.
Visitado
[04
May
4,
2005]
disponible
en
http://java.sun.com/j2ee/appmodel.html
67
Oracle University – eLearning. [Documento html] 1ed. Visitado [02 oct, 2004]
Disponible en:
http://education.oracle.com/latinamerica/elearning/
Heineman, George. Councill, William. “Component Based Software Engineering”
Addison Wesley 2001. 818p.
Sun Educational Services. “Developing applications for the J2EE platform”
July 2003 cap 1-2
Styperski, Clemens. “Component software = Beyond object oriented programming”
Addison-Wesley Edition. 2002 589p
Tom Archer, Andrew Whitechapel “Inside C#”, Microsoft second Edition, 2 ed.
Microsoft Press.
68
Descargar