Taller Final Sistemas de Software
Taller Final Sistemas de Software
Taller Final Sistemas de Software
1. ¿De qué forma los Sistemas Operativos sirven de puente de comunicación entre el usuario y la
máquina a través de los programas?
Son los que se encargan de traducir la instrucción que ha digitado el usuario a través de una
línea de órdenes o comandos para que el computador pueda entender el requerimiento que el
usuario ha solicitado, posteriormente el sistema operativo se encarga de asignar los recursos
correspondientes y efectuar las gestiones de control requeridas para que el programa pueda
funcionar (abrir – cerrar el programa, asignar - quitar memoria, manipular información,
seguridad de la información, envió - recepción de información).
2. ¿En qué consiste el lenguaje fuente y el lenguaje objeto y para qué sirven ambos?
4. ¿De qué forma los Sistemas de Aplicación han entrado a dinamizar los diferentes ambientes
personales, profesionales y laborales?
Han logrado crear herramientas de software propias para cada tipo de negocio que han
mejorada la productividad del recurso humano, han incentivado a las personas a capacitarse en
diferentes lenguajes de programación para que entren a solucionar diferentes necesidades del
mercado.
7. Elaborar un mapa conceptual que muestre elementos importantes que sobre el sistema
operativo, sus servicios, evolución y componentes.
8. Investigar qué función cumple el Núcleo o Kernel del Sistema Operativo.
Es el software más parte más importante del sistema operativo, la mayoría de los sistemas
operativos se construyen en torno al concepto de núcleo. La existencia de un núcleo es decir un
único programa responsable de la comunicación entre el hardware y el software informático,
resulta del compromiso que este debe tener con aspectos como resultados, seguridad y
arquitectura del procesador al cual estará unido. El núcleo tiene grandes poderes sobre la
utilización de los recursos materiales (hardware) y sobre todo la memoria, tienen como
funciones básicas las siguientes:
La manipulación del hardware se realiza por medio de controladores que conocen la forma de
comunicarse con el kernel por medio de “llamadas al sistema”, las cuales le indican al kernel que
realice tareas como escribir en un archivo, ejecutar un programa, obtener una fecha o la hora
del sistema; existen 4 clases de núcleos:
10. Elaborar un cuadro que posea 3 columnas, donde se debe ubicar año, nombre del lenguaje,
características del lenguaje.
# Las características principales de este programa son: fácil de usar para los
principiantes, lenguaje de propósito general (no orientado), permitir a los más
avanzados añadir características avanzadas siempre y cuando se conserve simple el
lenguaje para principiantes, interactivo, mensajes de error claros, no requerir un
conocimiento del hardware de la computadora y que se protegiera al usuario del
sistema operativo.
# Este lenguaje se basó en FORTRAN II y Algol 60, agregando algunas cosas para hacerlo
apropiado en sistemas de tiempo compartido y que incluyera elementos que hicieran
más fácil la operación aritmética de las matrices.
# La sintaxis de BASIC solo necesita los comandos LET, INPUT, PRINT, IF Y GOTO. Si a
algún programa se le agrega una pila, también se puede agregar ciclos FOR anidados y
el comando GOSUB. Un lenguaje como BASIC con dichas características necesita que el
código tenga números de línea.
# Al usar números de línea en el código fuente se tiene una desventaja, la cual es que
necesita que el programador haga un estimado de cuantas líneas ocupará el programa
que está escribiendo, esta necesidad se suple incrementando los números de línea en
intervalo regular como 10, pero esto tiene un problema a la hora que el código exceda
el espacio disponible entre las líneas originales; la inconsistencia fue solucionada más
tarde al entrar en vigencia el comando RENUMBER.
# Lenguaje de programación de alto nivel que pretende reunir las mejores
características del COBOL y del FORTRAN, fue puesto en marcha a mediados de la
década de los 60 para resolver todo tipo de problemas tanto de negocios como
científicos.
# Su nombre deriva de la expresión inglesa Programmíng Language, es decir, lenguaje
de programación. Se trata de un lenguaje de propósito general creado especialmente
para poder soportar aplicaciones de tipo científico (característica del FORTRAN) como
proceso de datos y textos (características del COBOL), además de programación de
sistemas a alto nivel.
PL/1 o PL/I
# Se emplea con éxito en el diseño e implementación de grandes sistemas que
requieren características avanzadas y gran robustez para la programación en sistemas
operativos IBM, se aplican esencialmente en el procesamiento de archivos y textos de
forma combinada en un mismo lenguaje
# El PL/I es un lenguaje flexible y sofisticado, los programas de PL/I pueden ser
preparados en cualquier formato libre, el elemento básico en el PL/I es el enunciado,
que termina con un 'punto y coma' (;). Los enunciados se combinan en procedimientos
y estos pueden representar por completo a un programa pequeño o un "bloque de
construcción" o módulo de un programa más complejo.
# Lenguaje de programación creado en los laboratorios Bell en el año de 1969, en su
mayoría fue un trabajo de Kenneth L. Thompson con contribuciones de Dennis M.
Ritchie.
# Este lenguaje es una simplificación del BCPL, en la cual se elimina cualquier tipo de
componente que no se considere prescindible para que este pudiese caber en la
memoria de una minicomputadoras de la época, también se incluyeron cambios para
reducir el número de caracteres de un programa típico.
# B sólo tenía un tipo de datos, que correspondía con una palabra de máquina, la
197 mayoría de operadores lo manejaban como un entero; por ejemplo + (suma), - (resta),
Lenguaje B:
0 * (multiplicación) ó / (división).
# B se continuó utilizando hasta los años 90 en los mainframes Honeywell y en ciertos
sistemas embebidos por una variedad de razones, incluyendo el uso de hardware
limitado en estos sistemas, librerías extensivas, herramientas o simplemente porque
era lo suficientemente bueno como para programar en el.
# B es un lenguaje orientado a la implementación de Sistemas Operativos
concretamente Unix, es el predecesor del lenguaje C.
# El trabajo de procesar un elemento como un número completo o un número real era
responsabilidad del programador.
# La primera versión fue liderada por Alan Kay miembro del equipo de investigación
Xerox Parc, pero también existió aportes de un desarrollador de nombre Dan Ingalls
cuya idea estaba basada en mensajes y cuyo código se podía reducir a solo una página.
# Es uno de los primeros lenguajes de programación gráficos orientado a objetos y todo
el entorno es tratado como un objeto.
# Las versiones lanzadas posteriormente incluían elementos como librerías, editor de
código, metaclases y su elaboración fue elaborada junto con otras compañías como
197 Hewlett-Packard y Apple.
SmallTalk
2 # El concepto central de Smalltalk es el objeto, en la que la interacción no es
directamente con el código sino que se hace en un entorno de objetos virtuales
# Las características principales son que es un lenguaje que tiene memoria propia,
comunicación con otros objetos, posibilidad de heredar las características de otros
objetos y de procesamiento.
# Una de las mejores características de Smalltalk es el alto grado de reutilización,
Smalltalk contiene un gran conjunto de objetos que pueden ser utilizados directamente
o fácilmente modificados para satisfacer la necesidad de una aplicación en general; los
objetos suelen ser utilizados en más de una aplicación, esto permite una mejora en la
productividad y una calidad en la zona de trabajo.
# Es uno de los lenguajes de programación más antiguos que existe, fue creado en 1972
por Dennis Ritchie.
# C es un programa de propósito general asociado universalmente al S.O. Unix, pero
cuya popularidad se base en que no está asociado a ningún sistema operativo ni a
ninguna maquina en especial.
# C es un programa tipificado de alto nivel y programación estructurada de propósito
general pero contiene construcciones de lenguaje que permiten control a bajo nivel,
aunque durante su diseño se pensó también en ser un lenguaje de programación de
sistemas característica que le da también potencia, velocidad de ejecución y flexibilidad
también se utiliza para crear aplicaciones.
# La sintaxis para declarar funciones hace que se describan los argumentos de la
función, esta información adicional hace que el compilador detecte fácilmente los
errores de argumento que no coinciden.
# Con el lenguaje C se puede trabajar un programa en módulos lo que permite que se
puedan compilar de modo independiente.
# El lenguaje C trabaja con librerías de funciones en las que básicamente sólo se
Lenguaje C: necesitan cambiar los valores dentro de una aplicación dada.
# El código generado por el lenguaje C es muy eficiente ya que los datos son tratados
directamente por el hardware de números, caracteres y direcciones de los
computadores.
# Poses un núcleo del lenguaje simple, con funcionalidades añadidas importantes como
funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
# Tipos de datos agregados (struct) que permiten que datos relacionados como un
funcionario que tiene una cedula, un nombre y un salario, se combinen y se manipulen
como un todo en una única variable "funcionario".
# La gestión de la memoria tiene que ser reservada y liberada explícitamente por el
programador. En otros lenguajes (como BASIC, Matlab o C#) la memoria es gestionada
de forma transparente para el programador. Esto alivia la carga de trabajo humano y en
muchas ocasiones previene errores.
# El fallo de seguridad clásico consiste en que algunas entradas de información al
programa no se comprueban en longitud, si un Hacker introduce datos lo bastante
grandes puede provocar la sobreescritura de código en la pila del programa e incluso
llegar a forzar la ejecución de código malware.
Prolog # La historia de Prolog inicia así con sus creadores que fueron Robert Kowalski (1970 en
la parte teórica), Maarten van Emden (en la demostración experimental) de Edimburgo
y Alain Colmerauer de Marsella (en la implementación).
# Este lenguaje fue creado para bajar los costos y tener facilidad en la programación, es
un programa que utiliza lógica para resolver los problemas y está orientado para
trabajar en aplicaciones de inteligencia artificial. Se compone de un compilador, un
intérprete, una Shell y una biblioteca de utilidades.
# Prolog es un lenguaje de programación creado para representar y utilizar el
conocimiento que se tiene sobre un determinado dominio, es usado para resolver
problemas que envuelven objetos y las relaciones entre ellos; donde el dominio es un
conjunto de objetos y el conocimiento se representa por un conjunto de relaciones que
describen las propiedades de los objetos y sus interrelaciones.
# Es un lenguaje de programación declarativo, lo cual quiere decir que el ordenador y el
programador sostienen una especie de conversación; Prolog espera a que se
introduzcan los hechos y las reglas que definen el problema a resolver. Posteriormente,
si se hacen las preguntas adecuadas, Prolog buscará las respuestas y las presentará en
la pantalla.
# Un programa prolog está formado por una serie de clausulas las cuales se dividen en
hechos, reglas y variables.
# Los hechos expresan relaciones entre objetos, por ejemplo queremos expresar el
hecho de que "un coche tiene ruedas", este hecho consta de dos objetos: "coche" y
"ruedas" y de una relación llamada "tiene", la forma de representarlo en PROLOG es: --
> tiene(coche,ruedas). Los nombres de objetos y relaciones deben comenzar con una
letra minúscula, primero se escribe la relación y luego los objetos separados por comas
y encerrados entre paréntesis, al final de un hecho debe ir el carácter "." (punto).
# Las reglas se utilizan para definir que un hecho depende de uno o más hechos. Una
regla consiste de una cabeza y un cuerpo unidos por el signo " :- ", la cabeza está
formada por un único hecho, el cuerpo puede ser uno o más hechos (conjunción de
hechos), separados por una coma (","), que actúa como el "y" lógico. Las reglas finalizan
con un punto (".").
# Las variables representan objetos que el mismo PROLOG determina, una variable
puede estar instanciada o no instanciada; esta instanciada cuando ya existe un objeto
que está representado por una variable.
# En conclusión podríamos decir que un conjunto de reglas que describa un dominio y
las relaciones es un programa PROLOG; los programas son generales, ligeros y cortos en
código. En dicho programa se pueden realizar las siguientes aplicaciones: pruebas
matemáticas “demostración de teoremas”, inteligencia artificial “sistema expertos” y
consultas a bases de datos “permitir inferir relaciones no especificadas”.
# El Altair-Basic fue un intérprete para el lenguaje de programación Basic que
funcionaba sobre una maquina Altair 800 del MITS (Micro Instrumentation and
Telemetry Systems), por lo que su nombre se deriva de esta máquina. Fue el primer
197
Altair Basic producto de Microsoft distribuido inicialmente por el MITS bajo contrato.
5
# Su característica principal es su eficiencia y bajo consumo de memoria.
# Con este programa se inicia la industria del Software para microcomputadoras y fue el
primero de alto nivel con el cual se le ejecutaban.
# Oficialmente fue creado en 1983 en los laboratorios Bell (hoy AT&T) por Bjarne
Stroustrup, empezando su desarrollo hacia el año1980.
# C++ es un lenguaje basado en C, incorporando todas las características de este:
Funciones definidas por el usuario, tipos de datos básicos, arreglos. Además se
adicionan características para programación orientada a objetos: Abstracción de datos,
encapsulamiento, herencia, polimorfismo.
# Este lenguaje es potente, expresivo, flexible, tiene comandos breves, su tamaño es
pequeño y su lenguaje es estructurado; su uso se hace más extenso debido a que
puede ser compilado en una gran cantidad de maquinas diferentes (portabilidad) y los
programas construidos son eficientes, un punto en contra es que la detección de
198
C ++ errores es muy pobre, lo que acarrea un problema para los principiantes.
3
# En un principio fue un lenguaje que se destino a la creación de sistemas operativos o
parte de ellos, los Macintosh y la interfaz grafica de Windows están codificados en este
lenguaje; mas adelante debido a su desarrollo también se destino para la creación de
aplicaciones.
# Debido a que originalmente el lenguaje sobre el que estaba basado "C" tenía una
cantidad numérica limitada con tendencia a conducirlo todo a un byte, C++ soluciona
este inconveniente enriqueciéndose con clases que describen tipos de datos acorde a
las necesidades del programador.
# En conclusión se puede decir que es un lenguaje de alto nivel que al mismo tiempo se
base en instrucciones cercanas a la maquina.
# Perl es un lenguaje que deriva ampliamente del lenguaje C, es un lenguaje de
programación diseñado por Larry Wall en 1987.
# Es un lenguaje ensamblado para leer archivos texto, extraer información de ellos y
crear reportes basados en la información que ellos contengan. Es una combinación de
características de C, sed, awk y sh.
# Es un lenguaje de script, debido a una gran cantidad de comandos en ingles utilizados
en la programación; se diseño para ayudar a efectuar tareas demasiados difíciles o
complicadas para crear una Shell script o muy simples para desarrollar rutinas
complicadas en C.
# Es un lenguaje imperativo con variables, expresiones y los bloques de código están
escritos entre llaves. Las variables cuando van a ser publicadas tienen un signo
precedente (sigil) los cuales son los que especifican que es una variable, Los
comentarios en Perl se definen con un símbolo de número #, su interpretación puede
ser por shells.
# Es fácil de usar pero su aprendizaje es lento y difícil, este lenguaje se desarrollo
Perl pensando en que fuera practico, eficiente y completo por lo que su enfoque fue para
desarrolladores que posean cierto conocimiento sobre el lenguaje.
# Con él se puede programar hacia cualquier necesidad, ya que alberga una gran
cantidad de librerías y módulos. Es un lenguaje muy intuitivo, ya que las funciones
creadas hacen exactamente lo que describen (print = impresión, delete = elimina,
return = regresa valor).
# Trabaja sobre varios entornos (Windows, OS/2, Linux) sin realizar cambios
significativos sobre el código, lo único es introducir el interprete correspondiente para
cada sistema operativo.
# Tiene diferentes características en su programación (estructural, funcional, orientada
a objetos), tiene un editor para procesar texto, es un lenguaje sensitivo a la forma en
que se declara las variables y funciones (es decir detecta mayúsculas y minúsculas).
# Perl es como un compilador y un intérprete. Es un compilador porque el programa
completo es leído y filtrado antes de que se ejecute la primera expresión y es un
198 intérprete porque no hay ningún código flotando por ahí que haga que consumas
7 espacio en el disco duro, así que de alguna manera Perl es lo mejor de ambos mundos.
# Python es de código abierto y fue desarrollado aproximadamente en 1991 por Guido
van Rossum, leer un programo en Python es como leer en Ingles, pero un ingles muy
Python estricto (simple y minimalistico).
199 # Es un lenguaje interpretado es decir que no requiere compilación, se ejecuta el código
1 fuente e internamente el programa lo convierte en una forma intermedia llamada
Bytecode para posteriormente si traducirlo al lenguaje nativo de la maquina y
ejecutarlo; no requiere que se declare el tipo de variable; no es necesario escribir el
código entre llaves; no requiere punto y coma al final de la sentencia.
# Es un lenguaje de programación de alto nivel (no hay que preocuparse por la
memoria que emplea el programa) no recomendado para programación de drivers o
kernel; se utiliza para diseños Web, programación de aplicaciones o video-juegos de
alta calidad.
# Debido a su naturaleza de software libre puede trabajar en diversas plataformas, el
código funciona sin requerir cambio alguno; aunque se debe ser cuidadoso cuando se
invocan librerías de un sistema determinado (dependencias a librerías o módulos que
funcionan en un S.O. determinado); este puede funcionar correctamente sobre Linux,
Windows, Macintosh, Solaris, OS/2 entre otros.
# Python es un programa orientado a procedimientos y orientado a objetos, es decir
está construido sobre procedimientos o funciones reutilizables (piezas de programa) y
objetos los cuales combinan datos y funcionalidad.
# Es un programa que puede trabajar de forma ampliable o incrustable, en la primera
podemos escribir una parte de él en lenguaje C/C++ para ejecutarlo rápidamente y en
la segunda podemos incrustarlo en un lenguaje construido en C/C++ para que trabaje
como un script.
# Las librerías son muy amplias, pueden hacer varias cosas: generación de documentos,
bases de datos, navegadores web, ftp, correo electrónico.
# Es un lenguaje de programación diseñado para facilitar el desarrollo de aplicaciones
en un entorno grafico, combina la sencillez del BASIC con un poderoso lenguaje de
programación visual los cuales desarrollan programan que corren a 32 bits para
Windows; esto ha hecho que sea un programa compatible únicamente bajo S.O.
Windows y por lo tanto monopólico.
# Fácil y sencillo de manejar, orientado y controlado por eventos, centrado en un motor
de formulario para el fácil desarrollo de aplicaciones graficas. Los elementos de
programación incluyen propiedades (datos que describen el objeto), instrucciones,
declaraciones, métodos (agrupa el código que se ejecuta en respuesta a un evento),
eventos (hechos que pueden ocurrir sobre un objeto p.ej. Click), operadores y palabras
Visual Basic claves.
# Posee varias bibliotecas para manejo de bases de datos, pudiéndose conectar con
cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server,
PostgreSQL, etc.) a través de ADO.
# Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la
rapidez con la que puede hacerse un programa que utilice una base de datos sencilla,
además de la abundancia de programadores en este lenguaje.
# El compilador genera ejecutables que requieren librerías DLL para que funcionen y
provean todas las funciones implementadas en el lenguaje.
# Los objetos en visual Basic están encapsulados, es decir contienen su propio código y
sus propios datos.
# Es un lenguaje de programación que se utiliza para automatizar tareas comunes en
maquinas Mac como operaciones de sistemas de archivos, datos textuales, análisis y
ejecución de programas entre otros o ganar tiempo en tareas complejas y de larga
duración.
# Una ventaja de este lenguaje es que se puede automatizar las acciones de otras
aplicaciones en el Mac, consiste en una serie de comandos en inglés que realizan
acciones sobre objetos. Ejemplos de acciones: open, close, get the name of (es decir,
abrir, cerrar, obtener el nombre de). Los objetos pueden ser, por ejemplo, una
aplicación, una ventana o un ajuste de preferencias; adicionalmente su sintaxis al estar
escrita en ingles puede ser utilizada por la gente común.
199
Apple Script # Una ventaja de este lenguaje es que se puede automatizar las acciones de otras
3
aplicaciones en el Mac
# Al igual que en otros lenguajes de programación, permite utilizar variables para
almacenar y manipular información; su uso es muy sencillo, para declarar y asignar un
valor a una variable debemos seguir la siguiente sintaxis: set nombreDeVariable to
valorParaLaVariable.
# Posee un editor para crear los scripts el cual permite leerlos, escribirlos, grabarlos y
guardarlos; las características principales de este editor es que es fácil de usar, permite
buscar y reemplazar un texto determinado en el script, ajuste automático a sentencias
de gran longitud, permite deshacer varias acciones, ofrece un asistente que le ayuda a
completar las sentencias.
199 Java # Es un lenguaje simple debido a su cercanía con C/C++ y orientado a objetos, estos
5 objetos tienen encapsulados sus datos y métodos durante su manipulación.
# Es un lenguaje interpretado es decir que no requiere compilación, se ejecuta el código
fuente e internamente el programa lo convierte en una forma intermedia llamada
Bytecode para posteriormente si traducirlo al lenguaje nativo de la maquina al cual se
haya portado el interprete.
# Es un lenguaje robusto y diseñado para crear software altamente confiable. Es seguro
e indiferente a la arquitectura en los más variados entornos de red, desde Unix a
Windows, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con
sistemas operativos diversos.
# Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus
operadores aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java
(JVM).
# Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de
lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así,
mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario
mientras otro presenta una animación en pantalla y otro realiza cálculos.
# Java puede ser usado para crear dos tipos de programas: aplicaciones independientes
y applets. Las aplicaciones independientes se comportan como cualquier otro
programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web
HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños
programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o
el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar
imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para
luego emprender acciones, etc.
# Fue originalmente creado por Rasmus Lerdorf en el año de 1994. Originalmente fue
desarrollado en perl, PHP al principio significaba Personal Home Page pero con el
tiempo como ya es desarrollado por otro grupo se llama PHP Hypertext preprocesor.
# Es un lenguaje multiplataforma y orientado al desarrollo de aplicaciones web
dinámicas con acceso a información almacenada en una base de datos.
# El código fuente es invisible al navegador, ya que este es ejecutado por el servidor y
su resultado es embebido en HTML para luego ser enviado al navegador (lenguaje del
lado del servidor); esto hace que la programación en PHP sea segura y confiable.
# Tiene capacidad de conexión con gran cantidad de motores de bases de datos
utilizados en la actualidad (MySQL, PostgreSQL).
# Es libre y permite aplicar técnicas de programación orientada a objetos, no requiere
definición de tipos de variables, aunque pueden ser evaluadas dependiendo del tipo de
PHP
dato que este manejando en tiempo de ejecución.
# No es case sensitive en cuanto a las funciones propias del lenguaje, pero si en las
declaraciones de variables que se hagan.
# Con este lenguaje se pueden hacer potentes aplicaciones para manejo de bases de
datos, formularios web, envíos de emails, foros, libros de visitas o aplicaciones
dinámicas estilo youtube, twitter.
# PHP no solo es rápido al ser ejecutado ya que utiliza su propio sistema de
administración de recursos sino que no genera retrasos en la máquina, por esto no
requiere grandes recursos del sistema. PHP se integra muy bien junto a otras
aplicaciones, especialmente bajo ambientes Unix.
199 # PHP es Open Source (código abierto) esto significa que no depende de ninguna
7 compañía comercial y que no requiere de licencias.
# El lenguaje de programación C# fue creado por Scott Wiltamuth y el danés Anders
Hejlsberg quien diseño también los lenguajes Turbo Pascal y Delphi. El C# (pronunciado
en inglés “C Sharp” o en español “C sostenido”) es un lenguaje de programación
orientado a objetos con el que se quiso mejorar los dos lenguajes anteriores de los que
se deriva, el C y el C++.
# Su código se puede tratar íntegramente como un objeto, la sintaxis es muy similar a la
del JAVA; es un lenguaje orientado a objetos y a componentes. Armoniza la
productividad del Visual Basic con el poder y la flexibilidad del C++, se ahorra tiempo en
la programación ya que tiene una librería de clases muy completa y bien diseñada.
# El lenguaje C# es el único que ha sido diseñado específicamente para ser utilizado en
la plataforma .NET, por lo que programarla usando C# es mucho más sencillo e intuitivo
que hacerlo con cualquiera de los otros lenguajes; por esta razón se suele decir que C#
200 es el lenguaje nativo de .NET.
C#
1 # La sintaxis de C# también es muy similar a la de C++, ya que la intención de Microsoft
con C# es facilitar la migración de códigos escritos en estos lenguajes a C# y facilitar su
aprendizaje a los desarrolladores habituados a ellos; otra característica es su sencillez y
el alto nivel de productividad que son equiparables a los de Visual Basic.
# Como es un lenguaje sencillo, C# elimina muchos elementos que otros lenguajes
incluyen; tal es que el código escrito es "autocontenido" lo que significa que no
necesita ficheros adicionales.
# El tamaño de los tipos de datos básicos es fijo e independiente del compilador,
sistema operativo o maquina en donde se haga la compilación; esto facilita la
portabilidad del código.
# La modernidad de este tipo de lenguaje le hace incorporar elementos que en otros
lenguajes han sido simulados como un tipo básico de datos "decimal", lo cual permite
realizar operaciones de alta precisión; la instrucción foreach que permite colecciones
con facilidad.
# C# soporta todas las características propias del paradigma de programación
orientada a objetos: encapsulación, herencia y polimorfismo.
# La web 2.0 es un conjunto de redes, tecnología y sistemas que conforman la sociedad
de la información y que tienen en internet su principal escenario de acción.
# Esta nueva web es dinámica, participativa y colaborativa donde los usuarios se
convierten en protagonistas activos creando y compartiendo contenido, opinando y
relacionándose.
# Las aplicaciones Web tiene 7 principios constitutivos: 1. La WWW como plataforma
2.Aprovechar la inteligencia colectiva 3.La gestión de las bases de datos 4. Fin del ciclo
de las actualizaciones 5. Modelo de programación ligera 6. El software no limitado a un
solo dispositivo 7. Experiencias enriquecedoras de usuario.
# En el principio 1, las herramientas web almacenan la información en un servidor y los
usuarios se conectan a la red donde tienen acceso constante a la información. Al
tenerlos en la red, es importante saber que podemos accezarla a cualquier momento,
también nos despreocuparemos de temas como los virus, fallas o daños de los equipos
personales pues tanto la aplicación como la información está disponible en un servidor
en cualquier momento.
# En el principio 2, se establece una relación de confianza entre todos los usuarios; ya
que un usuario puede realizar un aporte en cualquier tema o definición, otro cualquiera
le puede hacer una corrección; logrando con esto la transformación del usuario de
simple consumidor a un coodesarrollador en forma productiva para la plataforma
dando vida a los servicios y sitios web.
# Para el principio 3 lo valioso son los datos, ya que el software es un recurso abierto y
200 para estos servicios lo importante es la opinión de una masa crítica de usuarios que
WEB 2.0
4 produzca un volumen de datos de gran valor, como pueden ser comentarios y
calificaciones de productos o servicios. Logrando que un producto o servicio pueda
aumentar de valor comercial o pueda ser complementado de acuerdo a las críticas
recibidas.
# Del principio 4 podemos concluir que los productos hoy en día se lanzan
considerando las mejoras que los mismo usuarios sugieren mediante una versión beta
en línea, más que lanzar un producto al 100% y evaluado solo por unos pocos es mejor
la técnica del ensayo y el error para aprender del consumo de los usuarios.
# En cuanto al principio 5 sus objetivos son la simplicidad y eficiencia, no solo a nivel
técnico sino también a nivel del negocio; esto ofrece al usuario aplicaciones más
pequeñas pero más especializadas, diseñando aplicaciones ligeras y adaptables con las
cuales las empresas pueden responder rápidamente a las necesidades del mercado.
# Con el principio 6 se observa que ya el PC no es el único dispositivo que nos permite
acceder a servicios y a las aplicaciones de internet; hoy en día la computación obicua
que es la que integra la informática al entorno de las personas nos está haciendo
relacionar otros dispositivos inteligentes como los celulares, aparatos eléctricos caseros
y consolas de juego con conexiones vía internet, logrando que se establezcan
interactuaciones con otras personas en lugares remotos en tiempo real.
# Para finalizar el principio 7 nos dice que los usuarios en cada momento están
enriqueciéndose en su interactuación con la web, la tecnología nos provee de mejoras
en la interactividad con los sitios en diferentes tipos de formato (multimedia) que
hacen que hayan diferentes formas de entregar y compartir contenidos.
11. Redactar la situación problemática a la cual se le está dando solución con el siguiente modelo de
datos.
Generar llaves primarias en todas las tablas, se ha notado que algunas de ellas no los
manejan y esto ocasiona un lento procesamiento de la información.
14. Sacar un listado de 10 necesidades de software que se encuentren en su medio y que permitan
la agilización de los procesos, garantizando el eficiente manejo de datos y la generación de la
información para la toma de decisiones.
* Software para permitir la lectura de placas de carros (OCR) y hacer verificación en línea si el carro
presenta moras de comparendos.
* Software para policías de tránsito, que permita una vez que la persona ha pasado su documento se haga
la constatación en línea de si la persona debe multas de transito.
* Software para integrar planillas de operaciones en una sola base de datos, permita cálculos de tiempo y
realiza las graficas necesarias de productividad.
* Software para elaboración de solicitudes operativas empresariales vía intranet.
* Software para monitoreo de bebes en línea.
Dentro de las actividades donde puede ser implementado el Sistema experto encontramos
todas aquellas tareas donde se aporta a la seguridad del ser humano al trabajar en entornos
peligrosos, realizar tareas donde las personas puedan tener cansancio o fatigo al realizar una
actividad, realizar cálculos de una manera mucho mas rápida y precisa, tareas donde se requiera
aumentar la productividad sobre todo en aquellas que puedan llegar a ser repetitivas para el ser
humano, con una programación lógica completa pueden ayudar a la toma de decisiones con
base en una gran cantidad de información que se pueda encontrar en sus registros de bases de
datos con respecto a un determinado tema, pueden monitorear sistemas complejos donde
ayudan a generar alertas sobre cambios imprevistos o muestran la situación actual de dicho
sistema, actividades donde por la gran cantidad de información involucrada se requiera
simulaciones lo más rápido posible ya que implican el cambio constante de variables a cualquier
momento.
Los Sistemas Expertos emplean métodos matemáticos, informáticos y lingüísticos para crear
nuevo conocimiento a partir del conocimiento explícito presente en las bases de datos
levantadas por el ingeniero del conocimiento, los sistemas expertos tienen su origen en los
softwares ciencimétricos desarrollados para facilitar el análisis de grandes volúmenes de
información y su evolución ha sido constante durante los últimos años permitiendo la creación
de nuevo conocimiento en diferentes formatos de salida: listados basados en índices, gráficos,
diagramas, mapas, etc. Este nuevo conocimiento objetivo o explicito es compartido para toda
la comunidad investigativa y se colocan a disposición de otros investigadores en la base de datos
para descubrir y crear nuevo conocimiento.
La ingeniería del conocimiento es una rama de la inteligencia artificial cuyo fin es el diseño,
desarrollo e implementación de sistemas expertos (S.E.) o sistemas basados en el conocimiento
(SS.BB.CC). Esta rama tiene como función extraer el conocimiento de los expertos humanos en
un determinado campo y codificarlo de manera que pueda ser procesado por un sistema de
software. Para esto el ingeniero del conocimiento se base en metodologías instruccionales,
ciencias de la computación y tecnologías de la información para intentar representar el
conocimiento y razonamiento humano en un determinado campo y lograr que sea procesado
por un sistema artificial.
Figura 1.- Pirámide del conocimiento. En la base están los datos y su reelaboración mediante sistemas de conocimiento
Conduce a la creación de nuevo conocimiento y su representación cartográfica que ayudan a la toma de decisiones.
Los problemas que surgen a la hora de su diseño radica en que el ingeniero del conocimiento no
es experto en el campo que intenta implementar artificialmente y el ser humano experto no
tiene bases sobre modelación de su conocimiento a nivel artificial para ser implementado en
algún lenguaje de programación, es por tal razón que los dos deben implementar sinergias para
lograr realizar el diseño.
Gestión del conocimiento es el proceso por el cual una organización, facilita la trasmisión de
informaciones y habilidades a sus empleados, de una manera sistemática y eficiente, es
importante aclarar que las informaciones y habilidades no tienen por qué estar exclusivamente
dentro de la empresa, sino que pueden estar o generarse generalmente fuera de ella.
Este matiz final es muy importante, generalmente la mayoría de las empresas identifican gestión
del conocimiento solamente con la información y habilidades internas de la empresa, lo que se
conoce como Business Intelligence o inteligencia de negocios, de esta forma casi todos los
esfuerzos se orientan a canalizar la información y habilidades que ya posee una organización
centrándose en la eficiencia de los procesos de comunicación interna a través de la
implantación de sistemas como CRM, ERP y un CMI. Esto ha sido tradicionalmente así porque
siempre ha sido mucho más fácil controlar los volúmenes de información interna que la
información externa que se encuentra fuera de la organización que es más difícil de encontrar,
buscar, seleccionar y organizar.
Una empresa que solo se centre en la gestión del conocimiento interno está destinada al
desastre, simplemente porque el resto de los agentes de su mercado (consumidores,
competidores, proveedores, etc.) actúan fuera de la organización y si no tienen conocimiento de
lo que hacen o lo que quieren estos agentes la organización no será capaz de visualizar los
comportamiento y evolución de estos para efectuar correcciones a sus procesos. Hoy en día
casi todas las empresas disponen de redes comerciales y de proveedores que les trasmiten este
conocimiento e incluso ahora existen sistemas de vigilancia tecnológica y de inteligencia
competitiva que les proveen de la información necesaria para detectar lo que ocurre en su
mercado.
La gestión del conocimiento interno permite conocer la situación actual de la empresa o las
necesidades que se tienen (flujo de caja, materias primas o productos); pero la gestión del
conocimiento externo dice que ocurre en el mercado donde realmente se generan los ingresos
para la organización y las oportunidades y amenazas que se están formando. Las personas
están en el centro de la gestión del conocimiento, pero es más importante conocer sobre sus
habilidades y la información disponible en la organización, estos dos componentes son básicos
a la hora de tener en cuenta el proceso de Gestión del conocimiento en una organización; La
información puede ser recogida tratada y almacenada por los sistemas de información de la
empresa facilitando la creación de un cuadro de mando del entorno y un cuadro de mando
integral para la dirección, pero Las habilidades son en cambio más complicadas de trasmitir ya
que implica adquirir nuevo conocimiento para el que las recibe lo cual supone más tiempo.
La Gestión del conocimiento implica ir mucho más allá de los sistemas de información o un plan
de formación, es esencial favorecer una estructura empresarial innovadora y eficiente; si el
conocimiento fluye y se transmite de manera correcta en la organización, este solo puede
crecer. Las habilidades e informaciones útiles se trasmiten entre los empleados de forma rápida
y de esta manera aumenta la posibilidad de generar nuevo conocimiento que deriva en
aplicaciones nuevas, mejoras en procesos o productos y nuevas formas de hacer negocio para
alcanzar nuevas oportunidades.
19. ¿Por qué se dice que los requerimientos es una de las etapas más importantes para que el
producto de software tenga calidad?
Dan las pautas necesarias sobre los requerimientos solicitados en la realización del producto,
ayudan a entender el problema que se quiere abordar, se verifican las necesidades que se
quieren solucionar, se identifican las entradas y salidas del sistema, cual son los objetivos de la
puesta en producción de este producto, nos pueden informar sobre el impacto que generara la
creación del producto y su interactividad con los demás usuarios o productos existentes.
20. ¿Qué herramientas cree usted que faltan para fortalecer los procesos de Ingeniería del Software
y así minimizar los errores y defectos en los diferentes procesos y producto final?
Creería que un modelo de simulación de seguridad que permita verificar la vulnerabilidad del
código ensamblado a malwares o a agentes externos, así mismo un modelo de encriptación del
software que permita solo ser tocado por las personas autorizada para tal fin, esto ayudaría a
efectuar las correcciones necesarias durante el desarrollo del proyecto.
21. ¿Por qué la programación orientada a objetos desplazó al desarrollo de software estructural?
La programación orientada a objetos es mucho más interactiva, permite una gran cantidad de
herramientas graficas que ayudan al usuario a capturar información de forma mucho más
rápida, conllevando al aumento de la productividad de este. Así mismo la mayoría de los
lenguajes orientados a objetos tienen una versatilidad mucho mayor en su lenguaje, que hace
que el ensamblaje del código sea mucho más rápido.
22. ¿Por qué se debe considerar los riesgos en el proceso de Ingeniería del Software. Cuáles
pueden impedir que se desarrolle definitivamente el proyecto?
Los riesgos se consideran porque nos pueden ayudar a cuantificar el nivel de incertidumbre y el
grado de perdida que este puede ocasionar, amenazan al cronograma del proyecto y si estos se
hacen realidad pueden ocasionar retrasos y que los costes aumenten. Entre los tipos de riesgos
que se puedan presentar están los del proyecto (presupuesto, personal, cliente), técnicos
(diseño, implementación, técnicas anticuadas, mantenimiento), del negocio (producto no
requerido, producto no estratégico, productos no comerciales, cambios de enfoque directivos,
perdidas de presupuesto o personal asignado).
23. Observar cada uno de los videos para desarrollo de software y elaborar un esquema, donde se
muestre el nombre del modelo, sus principales características, sus ventajas y sus desventajas.
VENTAJAS DESVENTAJES
MODELO CASCADA
Ayuda a administrar el progreso del desarrollo Restrictivo y rígido para proyectos modernos.
Proveen un espacio para detallar minuciosamente el La vida real de un proyecto rara vez sigue una secuencia lineal,
proceso de desarrollo del software.. una mala improvisación del modelo que conlleva al fracaso.
Tarda muchísimo tiempo en ponerlo en producción, pasa por
Se establecen metas bien definidas en cada etapa del modelo de pruebas y hasta que no las pase no se pone en
proceso. producción.
Suministran una guía al ingeniería de software con el Errores de diseño en primeras etapas de prueba, produce a
fin de ordenar las actividades técnicas. rediseño y a nueva programación de código afectado
Suministran marco para la administración y
mantenimiento del desarrollo. Aumento de costos de desarrollo.
Definir puntos de control intermedio y monitorear
avances. No refleja realmente el proceso de desarrollo del software.
Se tarda mucho tiempo en completar todo el ciclo del
Permiten estipular recursos. desarrollo de software.
El mantenimiento se realiza en el código fuente.
Las revisiones de proyectos de gran complejidad son difíciles.
Impone una estructura de gestión de proyectos.
No se tiene en cuenta la naturaleza evolutiva del software.
MODELO INCREMENTAL
Se puede financiar el proyecto por partes Difícil de evaluar el costo total.
Apropiado para proyectos grandes de larga duración,
ya que al usuario se le está entregando con cierta Difícil de aplicar a sistemas transaccionales que tienen
frecuencia módulos de desarrollo. integrado su código fuente en C.
No se necesita tanto personal al principio como para
una implementación completa. Requiere gestores experimentados.
Es interactivo por naturaleza, el usuario se involucra
más. Los errores en los requisitos se detectan tarde.
Bajo riesgo de falla al no ser un proyecto global. Las primeras versiones son incompletas.
Los sistemas más prioritarios tienden a recibir la
mayor cantidad de pruebas. Se necesitan pruebas de regresión.
Se le puede dar prioridad a las necesidades que el
usuario nos informe o a aquellos que el proyecto a
definido en las etapas iniciales incrementales. Aumento de costes debido a las pruebas.
MODELO PROTOTIPO
El usuario se involucra más que en los anteriores, ya Debido a que el prototipo puede llegar a ser muy básico puede
que entiende de mejor manera el resultado de la ocasionar que el usuario final sienta que no satisface las
construcción. necesidades que él tiene.
Reduce el riesgo de producir productos que no Solo surte efecto si los datos con los que es diseñado son
satisfagan las necesidades de los usuarios. reales.
Reduce costos y disminuye la probabilidad de riesgo. Exige disponer de las herramientas adecuadas.
Hay retroalimentación por parte del usuario final lo
que ocasiona evolución del producto final. El prototipo no presenta calidad ni robustez.
Se pueden utilizar en proyecto excepcionales donde
los desarrolladores no tengan mucha experiencia o Construirse con menos del 10 % del costo total del producto y
información. construirse rápidamente.
Proyectos novedosos y aun no es demostrada la
factibilidad de ser proyecto exitoso.
Situaciones de riesgo o costo elevado.
Equipos de desarrollo reducidos.
MODELO EN ESPIRAL
Ayuda a seleccionar la mejor metodología que se Es un reto encontrar la metodología adecuada para la
adecue al desarrollo del software. siguiente interacción.
La metodología utilizada en ocasiones anteriores no puede ser
Se toman en cuenta los riesgos para evitarlos y se utilizada en otros posteriores (varia con cada proyecto), se
establece un plan de contingencia. limita la reusabilidad.
Permite una mezcla con las metodologías de
prototipo, cascada o incremental. Es difícil elaborar la evaluación de riesgos.
Existe el riesgo de que el proyecto se vuelva una simple
metodología en cascada.
El gestor del proyecto debe ser una persona idónea y
altamente experimentada.
Debe hacerse un minucioso levantamiento de documentación
de los requerimientos solicitados.
MODELO RUP
No es efectivo en sistemas de información híbridos, es decir
organizaciones donde todos los sistemas no están orientados a
Es un metodología madura y evolutiva. objetos.
El uso de herramientas de análisis como el UML hace
que este normalizado con los estándares industriales La sintaxis de notación utilizada requiere de conocimientos
existentes. avanzados que el desarrollador promedio no tiene.
Comprar las herramientas y entrenar los equipos utilizados en
Las fases del diseño son adaptables a la organización. el desarrollo puede llegar a ser costoso.
Contiene herramientas que facilitan su Limitación con el ciclo de vida del producto, no contempla el
implementación en todas las aéreas de la empresa. retiro de este con el tiempo.
Define detalladamente las actividades, roles y
responsabilidades.
MODELO XP
Se interactúa bastante con el cliente, la comunicación
constante ejerce retroalimentación que hace La pareja de programación debe trabajar de manera
evolucionar el producto a cada momento. coordinada y tener empatía entre ellos (buena comunicación).
Es una metodología simple de trabajo. El estilo de programación debe ser similar.
Metodología de ensayo y error, constantemente se Se comparte el código entre dos personas realizando el mismo
está efectuando correcciones al código. trabajo.
Se utiliza en proyectos que involucren alto riesgo. No se puede definir costo y tiempo del desarrollo a realizar.
El jefe de desarrollo debe saber delegar el proyecto y ejercer
tareas de dirección constantemente con las parejas
Aumenta la productividad al trabajar en parejas. desarrolladoras.
El modo de trabajo hace que todos los desarrolladores
conozcan cómo funciona el producto a desarrollar.
Se efectúan reuniones de seguimiento diarias.
Al producto se le efectúa constantemente pruebas.
25. Usted es contratado para desarrollar un software basado en la situación problemática expuesta,
tiene cita mañana a primera hora con el director del centro médico. Se pide diseñar un formato
de entrevista, donde se muestre, hora, fecha, datos del entrevistador, datos del entrevistado,
preguntas relevantes que permita tener claridad sobre lo que se debe saber antes de abordar el
proceso de requerimientos.
CLIENTE SOLICITA:
FECHA:
HORA:
ENTREVISTADO:
CUESTIONARIO INICIAL
1. Introducción.
TERMINO SIGNIFICADO
2. Descripción General
2.1 Perspectiva del producto (indicar si es un producto independiente o forma parte de otro)
2.2 Funcionalidad del producto(funciones principales que el producto debe realizar, sin entrar en detalle)
2.3 Características de los usuarios(Nivel educacional, actividad que realiza y experiencia técnica.)
LIMITACION DETALLE
Planta Física
Planta Eléctrica
Comunicaciones
Software
Hardware
2.5 Evolución previsible del sistema(futuras mejoras que podrán analizarse e implementarse en un futuro)
3. Requisitos específicos
3.1 Requisitos comunes de las interfaces(Descripción detallada de todas las entradas y salidas del sistema de software)
3.1.1 Interfaces de usuario(requisitos del interfaz de usuario para el producto: tipo del texto, estilo y colores del producto)
3.1.2 Interfaces de hardware(especificar relación del hardware actual con las interfaces del producto a desarrollar, configuracion existente)
3.1.3 Interfaces de software(Preguntas relacionados con integración del producto con otros productos de software existentes)
3.1.4 Interfaces de comunicación(Establecer si hay comunicaciones con otros sistemas y cuáles son las protocolos de comunicación)
Generación de salidas
Relaciones entre entradas y salidas (secuencias de entradas y salidas, formulas para la conversión de información)
Especificación de los requisitos lógicos para la información que será almacenada en base de datos (tipo de información, requerido)
Nivel de transacciones que deberá soportar el sistema por segundo (basados en requerimientos actuales)
3.3.3 Mantenimiento (Especificación de quien realizara las tareas de mantenimiento: usuarios o un desarrollador)
26. Elaborar un mapa conceptual que muestre cada uno de los diagramas UML, su utilidad en el
proceso de Ingeniería del Software.
Diagrama
de Clases
Durante
Presentes
Sistema
Código
Diseño
De la Informacion Que Manejara
Conceptual
Sistema Componentes
Diagrama de
Componentes
Tipo
Lenguaje Unificado
de Modelado
Dependencias Arquitectura
Sistema de de Software
Software
Entre
Para
es Dividido
Componentes
Físicos Modelar Documentar
Componentes
Arquitectura
como Cualquier
de Software
28. Teniendo en cuenta los elementos dados para aplicar pruebas de caja blanca. Aplicar prueba
del camino básico, al siguiente algoritmo; Dibujar el grafo de flujo:
8 9
5
10
6
V(G) = 3 Regiones (El # de regiones del grafo coincide con la complejidad ciclomática )
V(G) = A – N + 2 = 11 – 10 + 2 = 3 (A: Nº de aristas, N: Nº de nodos)
V(G) = P + 1 = 2 + 1 = 3 (P: Nº de nodos predicados)
Camino 1 = 1, 2, 3, 4, 5, 6, 3
Camino 2 = 1, 2, 3, 7, 8, 10
Camino 3 = 1, 2, 3, 7, 9, 10
Camino 4 = 1, 2, 3, 4, 7, 8, 10
Camino 5 = 1, 2, 3, 4, 7, 9, 10
31. Preparar los casos de prueba para cada camino. De acuerdo al vector dado, en caso de buscar.
Camino 1 =
Índices :
1 2 3 4 5
50 40 10 5 20
VEC
BUSCAR(VEC,N,DATO)
I=1,POS=0
MIENTRAS (I<=N)HAGA
SI(VEC[I]=DATO
POS=I
I=N+1
SINO
I=I+1
FIN-SI
FIN-MIENTRAS
SI (POS<>0) ENTONCES
IMPRIMIR “SI EXISTE”
SINO
IMPRIMIR “NO EXISTE”
FIN-SI
REGRESE
33. De qué forma las plataformas LMS, han aportado al sistema educativo y cómo se visiona el
futuro educativo con el apoyo de estas o de otras herramientas.
El futuro educativo tiende hacia lo no presencial, las herramientas hoy en día proveen la
posibilidad de establecer contactos con personas de muchas otras partes y así mismo poder
estar estudiando en la misma institución con horarios flexibles de aprendizaje. El contacto físico
poco a poco puede ser abolido y se hará mas común la interacción por chat, blogs, redes
sociales o tableros de discusión, esto lo único que requerirá será una conducta mas autodidacta,
responsable y honesta con respecto a la realización de las actividades extracurriculares.
34. Qué hace que una herramienta sea mejor que otra.
35. Cómo cree que se pueden utilizar las herramientas informáticas para la generación de nuevo
conocimiento.
Es una plataforma que funciona en modo servidor sobre sistema operativo Unix o Windows y
donde los clientes (Estudiantes y profesores) solo requieren de un PC conectado a internet y un
navegador estándar (Mozilla, Explorer), este PC puede tener cualquier sistema operativo y aun
así no hay impedimento para que se ejecute la plataforma; WebCT significa Web Course Tools o
Herramientas para Cursos Web; el acceso a los cursos es personal para cada alumno por lo que
se requiere de unos datos de acceso (Nombre de Usuario y Contraseña) para lograr establecer la
conexión, los profesores pueden añadir a sus cursos WebCT varias herramientas interactivas
tales como: tableros de discusión o foros, sistemas de correos electrónicos, conversaciones en
vivo (chats), contenido en formato de páginas web, archivos PDF entre otros. Este sistema
comercial de aprendizaje virtual online está compuesto de varios programas que permiten crear
y administrar un curso en línea, su desarrollo fue comenzado en el año 1995 y terminado en
1997 por los estudiantes Murray W. Gooldberg y Sasan Salari en el departamento de Ciencias de
la computación de la Universidad de la Columbia Británica en Canadá.
Puede otorgar una gran cobertura ya que a partir de un entorno virtual de aprendizaje
la oferta académica puede ser implementada en vastas regiones geográficas.
Existe flexibilidad en el tiempo de aprendizaje, ya que la comunicación puede ser
asincrónica o sincrónica y así mismo la permanencia de contenidos didácticos en el
tiempo permite al estudiante decidir el momento para efectuar su aprendizaje.
La plataforma ofrece una gran diversidad de herramientas virtuales (foros, exámenes
virtuales, portafolios, etc.).
Se puede verificar el avance de los estudiantes con los informes de rendimiento que
suministra la plataforma.
Se puede ofrecer una gran distribución de contenidos didácticos y en diferentes
formatos dinámicos que los hacen más atractivos, como bibliotecas virtuales y enlaces a
sitios que ofrezcan mayor información.
a) ATutor: Se trata de una de las plataformas más utilizadas, con más de 30000
instaladas en diferentes centros educativos. Permite a los docentes y a sus
estudiantes de seguir el curso, de intercambiar mensajes con los otros
participantes, crear grupos, trabajar colaborativamente, etc.
b) Chamilo:
c) Claroline: es una plataforma de aprendizaje y trabajo virtual (eLearning y
eWorking) de código abierto y software libre (open source) que permite a los
formadores construir eficaces cursos online y gestionar las actividades de
aprendizaje y colaboración en la web. Traducido a 35 idiomas, Claroline tiene
una gran comunidad de desarrolladores y usuarios en todo el mundo.
d) Dokeos: se trata de una plataforma completa. Se usa en muchos centros
educativos y tiene las herramientas adecuadas para planificar, organizar y
desarrollar cursos, es una de las plataformas más fáciles de aprender para su uso
por parte de los alumnos, aunque para los docentes “realizar un buen control de
la misma” es un poco más complicado.