lunes, 23 de noviembre de 2015

CUESTIONARIO

1.       Las pruebas de software, en inglés testing son los procesos que permiten
Verificar y revelar la calidad de un producto software. Son utilizadas para identificar posibles fallos de implementación, calidad, o usabilidad de un programa de ordenador o videojuego.

1.       ¿Qué son las pruebas de software?
Las Pruebas de software son los procesos que permiten verificar y revelar la calidad de un producto software. El programa se ejecuta con la intención de descubrir un error.

2.       ¿Con que fin se realizan las pruebas de software?
El fin de las pruebas es presentar información sobre la calidad del producto a las personas responsables de este. Teniendo esta afirmación en mente, la información que puede ser requerida es de lo más variada. Esto hace que el proceso de testing sea completamente dependiente del contexto en el que se desarrolla

3.       ¿Que son las estrategias de prueba de software y para que se emplean?
Una estrategia de prueba del software integra las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que dan como resultado una correcta construcción del software. Y lo que es más importante, una estrategia de prueba del software proporciona un mapa a seguir para el responsable del desarrollo del software, a la organización de control de calidad y al cliente: un mapa que describe los pasos que hay que llevar a cabo como parte de la prueba, cuándo se deben planificar y realizar esos pasos, y cuánto esfuerzo, tiempo y recursos se van a requerir. Por tanto, cualquier estrategia de prueba debe incorporar la planificación de la prueba, el diseño de casos de prueba, la ejecución de las pruebas y la agrupación y evaluación de los datos resultantes.

4.       ¿Cuál es la prueba que se enfoca en los requisitos necesarios para el usuario final y que técnicas utiliza?
Prueba alfa y beta: En este servicio, los consultores de Testhouse se encargan de
Dirigir a los usuarios finales y asegurar que se prueban todos los requisitos y se cumplen los criterios de aceptación especificados previamente en el plan de pruebas del sistema. Como resultado de estas pruebas se elabora un informe que determina la aceptación o rechazo del sistema en base los criterios de aceptación acordados.

5.       ¿Cuáles son los tres enfoques para el diseño de pruebas y en qué consiste?
Enfoque estructural o de caja blanca: consiste en centrarse en la estructura interna (implementación) del programa para elegir los casos de prueba.
Enfoque funcional o de caja negra: consiste en estudiar la especificación de las funciones, la entrada y la salida para derivar los casos.
Enfoque aleatorio: consiste en utilizar modelos (en muchas ocasiones estadísticos) que representen las posibles entradas al programa para crear a partir de ellos los casos de prueba.

6.       ¿En qué consiste el enfoque estructural o caja blanca?
Consiste en centrarse en la estructura interna (implementación) del programa para elegir los casos de prueba.

7.       ¿En qué consiste el enfoque funcional o de la caja negra?
Consiste en centrarse en la estructura interna (implementación) del programa para elegir los casos de prueba

8.       ¿En que consiste la prueba de regresión?
consiste  intentan descubrir las causas de nuevos errores (bugs), carencias de funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del software, inducidos por cambios recientemente realizados en partes de la aplicación que anteriormente al citado cambio no eran propensas a este tipo de error. Esto implica que el error tratado se reproduce como consecuencia inesperada del citado cambio en el programa.

9.       ¿Cuáles son las dos formas de integración y en qué consisten?
-          Integración descendente
Es un enfoque incremental para la construcción de la arquitectura del software. Los módulos se integran al descender por la jerarquía de control, empezando con el módulo de control principal. Los módulos subordinados al módulo de control principal se incorporan en la estructura de una de dos maneras: primero en profundidad o primero de anchura.

-          Integración ascendente
Empieza la construcción y la prueba con módulos atómicos (es decir, componentes de los niveles más bajos de la estructura del programa). Debido a que los componentes se integran de abajo hacia arriba, siempre está disponible el procesamiento requerido para los componentes subordinados a un determinado nivel y se elimina la necesidad de resguardos

10.   ¿Qué es un producto alpha, beta y master?
Alfa es la primera versión del programa
El beta es la primera versión completa del programa que puede ser inestable
Master pueden responder a las necesidades actuales del área de desarrollo de software.

11.   ¿Qué diferencia hay entre una prueba de caja negra y caja blanca?
Las de caja negra se aplican a la interfaz del software (examina un aspecto funcional con poca relación con la arquitectura del sistema).

Las de caja blanca prueba las rutas lógicas del software y la colaboración entre componentes. Se conoce y se tiene en cuenta

12.   ¿La prueba y la depuración son lo mismo? ¿Por qué?
-          Prueba: Es el proceso mediante el cual se establece la existencia de errores.
-          Depuración: Es el proceso mediante el cual se localizan los errores.
Ambos casos tienen el objetivo de localizar y establecer los posibles errores que se están presentando en la aplicación.

13.   ¿Qué tipo de prueba se basa en sus componentes y la forma como están sus estructuras?
Pruebas de Integración, ya que este tipo de prueba está basado en los requisitos no funcionales

14.   ¿Las pruebas de aceptación son definidas por el desarrollador?  ¿Por qué?
Las pruebas de aceptación aseguran el comportamiento del sistema, son escritas por el usuario y especifican los aspectos a probar cuando una historia de usuario ha sido correctamente implementada.
En esta herramienta se definen las actividades que deben ser realizadas por el cliente por lo tanto es a partir de ahí que el programador implementa los arreglos a posibles fallas o correcciones.

15.   Defina cada uno de los procesos de las pruebas de software

v  Pruebas Unitarias
v  Pruebas De Integración
v  Pruebas De Validación
v  Pruebas De Sistema
v  Caja Blanca
v  Caja Negra
v  Pruebas De Regresión

16.   ¿Qué diferencia existe entre un fallo, un erro y un defecto?
Falla: En terminología IEEE, una falla es la discrepancia visible que se produce al ejecutar un programa con un defecto, el cual es incapaz de funcionar correctamente (no sigue su curso normal).

Error: Es una equivocación cometida por el desarrollador. Algunos ejemplos de errores son: un error de digitación, una malinterpretación de un requerimiento o de la funcionalidad de un método. El estándar 829 de la IEEE coincide con la definición de diccionario de error como "una idea falsa o equivocada". Por tal razón un programa no puede tener o estar en un error, ya que los programas no tienen ideas; las ideas las tienen la gente.

Defecto: Un defecto se encuentra en un artefacto y puede definirse como una diferencia entre la versión correcta del artefacto y una versión incorrecta. Coincide con la definición de diccionario, "imperfección".

17.   ¿Es necesario realizar las pruebas de aceptación?
Las pruebas de aceptación, al igual que las de sistema, se realizan sobre el producto terminado e integrado; pero a diferencia de aquellas, están concebidas para que sea un usuario final quien detecte los posibles errores

18.   Establezca a diferencia entre las diferentes estrategias de pruebas
Se han propuesto varias estrategias de prueba del software en distintos libros. Todas proporcionan al desarrollador de software una plantilla para la prueba y todas tienen las siguientes características generales:
v  La prueba comienza en el nivel de módulo y trabaja «hacia fuera», hacia la integración de todo el sistema basado en computadora.
v  Según el momento son apropiadas diferentes técnicas de prueba.
v  La prueba la lleva a cabo el responsable del desarrollo del software y (para grandes proyectos) un grupo independiente de pruebas.
v  La prueba y la depuración son actividades diferentes, pero la depuración se debe incluir en cualquier estrategia de prueba.
Una estrategia de prueba del software debe incluir pruebas de bajo nivel que verifiquen que todos los pequeños segmentos de código fuente se han implementado correctamente, así como pruebas de alto nivel que validen las principales funciones del sistema frente a los requisitos del cliente. Una estrategia debe proporcionar una guía al profesional y proporcionar un conjunto de hitos para el jefe de proyecto. Debido a que los pasos de la estrategia de prueba se dan a la vez cuando aumenta la presión de los plazos fijados, se debe poder medir el progreso y los problemas deben aparecer lo antes posible.

19.   ¿Cuál es la diferencia entre validación y verificación?
Muchas veces se confunde “verificación” con validación”. Barry W. Boehm (1979) puso en claro con pocas palabras la diferencia:

v  Validación: ¿Estamos construyendo el producto correcto? Se ocupa de controlar si el producto satisface los requerimientos del usuario

v  Verificación: ¿Estamos construyendo correctamente el producto? implica controlar que el producto conforma su especificación inicial.

En la Validación el resultado final del desarrollo software se debe ajustar a lo que el usuario quería (sus necesidades). En la mayoría de las ocasiones el producto desarrollado no casa con la ideas del cliente, normalmente porque a éste suele faltarle capacidad técnica de expresión.

En la Verificación el código que estamos construyendo debe estar en armonía con la especificación que hemos tomado del usuario. El resultado final del desarrollo software debe concordar con la especificación (requisitos) del sistema, por lo que debemos asegurarnos que el desarrollo final coincida con dicha especificación

20.   ¿Porque es difícil aplicar pruebas de unidad a un módulo altamente acoplado?
Porque es difícil aplicar pruebas de unidad a un módulo altamente acoplado.
si para cambiar un módulo en un programa tenemos que cambiar otro módulo, entonces hay acoplamiento entre ellos.
El acoplamiento puede aparecer bajo varias formas. Por ejemplo, si hay código repetido esparcido entre los módulos, también habrá un cierto acoplamiento, porque cambiar un fragmento de código repetido implica cambiarlo en todos los módulos que aparecen.
Incluso puede que haya dependencias entre módulos y no nos demos cuenta de ello.
Pero el acoplamiento también ocurre cuando el código de un módulo utiliza código de otro módulo, bien porque llama a un método, o accede a sus datos.
Por ello, como tal, el acoplamiento no es algo que debas evitar a toda costa.
Porque aunque dividamos nuestro programa en módulos, esos módulos tendrán que interactuar entre sí de alguna manera (si no tendríamos distintos programas independientes) y tendremos algo de acoplamiento entre ellos.
Hay distintos tipos y lo que es más importante, grados de acoplamiento.
Lo que es malo, y puede que lo estés padeciendo, es tener un acoplamiento alto, fuerte, entre los módulos.
Y peor si es incontrolado, es decir, si no sabes claramente qué módulos dependen de otros módulos.

21.   De tres ejemplos de pruebas, aplique pruebas de caja negra y pruebas de caja blanca

Tipos de pruebas
v  Pruebas Unitarias
v  Pruebas De Integración
v  Pruebas De Validación
v  Pruebas De Sistema

Prueba de caja blanca:
Las pruebas de caja blanca (también conocidas como pruebas de caja de cristal o pruebas estructurales)
Se centran en los detalles procedimentales del software, por lo que su diseño está fuertemente ligado al código fuente. El testeador escoge distintos valores de entrada para examinar cada uno de los posibles flujos de ejecución del programa y cerciorarse de que se devuelven los valores de salida adecuados.

Las principales técnicas de diseño de pruebas de caja blanca son:
                   Pruebas de flujo de control
                   Pruebas de flujo de datos
                   Pruebas de bifurcación (branch testing)
                   Pruebas de caminos básicos

Pruebas de la caja negra: 
Las pruebas de caja negra ejercitan los requisitos funcionales desde el exterior del módulo. En otras palabras, de una caja negra nos interesará su forma de interactuar con el medio que le rodea entendiendo qué es lo que hace, pero sin dar importancia a cómo lo hace. Por tanto, de una caja negra deben estar muy bien definidas sus entradas y salidas, es decir, su interfaz; en cambio, no se precisa definir ni conocer los detalles internos de su funcionamiento.

21.   Explique los métodos de pruebas orientados a objetos

Prueba de Unidad
El encapsulamiento dirige la definición de clases y objetos. Esto significa que cada clase e instancia de clase (objeto) empaqueta los atributos (datos) y las operaciones (también conocidas como métodos o servicios) que manipulan estos datos. Por lo tanto, en vez de módulos individuales, la menor unidad a probar es la clase u objeto encapsulado. Una clase puede contener un cierto número de operaciones, y una operación particular puede existir como parte de un número de clases diferentes. Por tanto, el significado de prueba de unidad cambia ampliamente frente al concepto general visto antes.

Prueba de Integración
no tiene una estructura de control jerárquica, las estrategias convencionales de integración ascendente y descendente poseen un significado poco relevante en este contexto. Generalmente se pueden encontrar dos estrategias diferentes de pruebas de integración en sistemas. La primera, prueba basada en hilos (o threads), integra el conjunto de clases necesario para responder a una entrada o evento del sistema. Cada hilo se integra y prueba individualmente. El segundo enfoque para la integración, prueba basada en el uso.
Concretamente, se pueden realizar los siguientes pasos para generar casos de prueba a partir de un diagrama de secuencias:
1.       Definir el conjunto de secuencias de mensajes a partir del diagrama de secuencia. Cada secuencia ha de comenzar con un mensaje m sin predecesor (habitualmente, un mensaje enviado al sistema por un actor), y estará formada por el conjunto de mensajes cuya ejecución dispara m.
2.       Analizar sub-secuencias de mensajes a partir de posibles caminos condicionales en los diagramas de secuencia.
3.       Identificar los casos de prueba que se han de introducir al sistema para que se ejecuten las secuencias de mensajes anteriores, en función de los métodos y las clases afectadas por la secuencia.

Prueba de Sistema
En el nivel de prueba del sistema, los detalles de las conexiones entre clases no afectan. El software debe integrarse con los componentes hardware correspondientes y se ha de comprobar el funcionamiento del sistema completo acorde a los requisitos. Como en el caso del software convencional, la validación del software se centra en las acciones visibles del usuario y las salidas del sistema reconocibles por éste. Para asistir en la determinación de casos de prueba de sistema, el ejecutor de la prueba debe basarse en los casos de uso que forman parte del modelo de análisis.

Prueba de Aceptación

La prueba de aceptación en un sistema es semejante a la prueba de aceptación en un software tradicional. El motivo es que el objetivo de este tipo de prueba es comprobar si el cliente está satisfecho con el producto desarrollado y si este producto cumple con sus expectativas, en términos de los errores que genera y de la funcionalidad que suministra. Al igual que las pruebas convencionales serán los clientes quienes realicen estas pruebas y suministren los casos de prueba correspondientes.
Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software (Bohem, 1976).
La ingeniería de software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación, y mantenimiento del software.
Esta disciplina trasciende la actividad de programación, que es el pilar fundamental a la hora de crear una aplicación. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.
La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.

lunes, 5 de octubre de 2015

USO DE LOS TICS

VENTAJAS Y DESVENTAJA DEL USO DE LAS TICS EN LA EDUCACION

Las TIC se han convertido en un recurso nuevo para la educación, por lo que, para poder beneficiarnos de todo su potencial en el proceso de aprendizaje, es necesario reflexionar acerca de cómo aprovecharlo de la mejor manera. Es un error pensar que con el simple hecho de tener una computadora, ya se puede aprender todo; lo que sí se puede decir es que este aparato nos brinda la oportunidad de tener acceso a mucha información y que con ello, se puede tener acceso a la construcción del aprendizaje, sin embargo las TIC, en los procesos de aprendizaje, ofrecen ventajas y desventajas. A continuación presentamos algunas de ellas.

  1. Interés y motivación. Los usuarios se motivan al utilizar las TIC, aspecto que hace que las personas le dediquen con entusiasmo más tiempo al estudio y, por tanto, es muy probable que aprendan más.
  2. Interacción y actividad continua . Los usuarios de las TIC, jóvenes, adultos y asesores, se mantienen de manera constante en actividad intelectual y además pueden estar en comunicación con una gran cantidad de personas, lo que les permite intercambiar experiencias y conocimientos sobre un tema, aspecto que representará la construcción del aprendizaje de manera más sólida y significativa.


Gran diversidad de información. El uso de las TIC en los procesos de aprendizaje da la oportunidad a las personas y a sus asesores de tener acceso a gran cantidad de información, aspecto que permite que el aprendizaje no se limite a los temas tratados sólo en los libros de texto y que, además, no pierda actualidad.

Programación del aprendizaje. Los usuarios pueden trabajar a su propio ritmo, por lo que no existe presión para avanzar a la velocidad de los demás. Cada persona puede programar los tiempos que dedicará para estudiar y los horarios en los que lo hará.

Desarrollo de la iniciativa. La constante participación en actividades que requieren tomar decisiones para avanzar en el estudio, propicia el desarrollo de su iniciativa.

Desarrollo de la habilidad para la búsqueda y selección de información. Al realizar una búsqueda y obtener un mar de información, el usuario adquiere la habilidad de buscar, discriminar y seleccionar sólo lo que necesita, o lo que le puede ayudar en su proceso de aprendizaje.

Aprendizaje a partir de los errores. La realimentación inmediata para sus ejercicios y prácticas, permite a la persona conocer los errores en el momento en que se producen, lo cual ayuda para su corrección.

Aprendizaje cooperativo. Los instrumentos que proporcionan las TIC pueden apoyar el trabajo en grupo y el cultivo de actitudes sociales, el intercambio de ideas, la cooperación, etcétera.

Desarrollo de habilidades para el uso de la tecnología. Se obtienen capacidades y competencias para el manejo de las máquinas relacionadas con la electrónica, aspecto que da valor agregado a los procesos de enseñanza aprendizaje de los jóvenes y adultos.

Aportes del Software Educativo.

EL MAESTRO Y LA INFORMÁTICA EDUCATIVA 

Los textos electrónicos, hipertextos, micro mundos, simuladores, etc., son algunos de los elementos específicos que genéricamente se consideran como software educativo, es decir, programas elaborados en una plataforma informática que buscan apoyar el desarrollo de temáticas específicas incluidas en los planes de estudio formal o informal del sistema educativo y que poseen una clara intención pedagógica.

El desarrollo de software educativo en los últimos años, ha pasado en nuestro país de ser concebido como un "presentador de información" a ser un elemento didáctico interactivo que se elabora a partir de la representación de conocimiento (Maldonado, y otros, 1997) y que facilita en el usuario su construcción gracias a la utilización de elementos que permiten solucionar problemas e impactar su estructura cognitiva.

De acuerdo con los elementos anteriores, el papel de la informática dentro de la educación se caracteriza por ser un elemento de apoyo al proceso de enseñanza aprendizaje y el software educativo como un elemento didáctico que diseña espacios y ambientes basados en los requerimientos cognitivos de los estudiantes. Lo anterior implica que en su realización debe tener en cuenta no solo aspectos técnicos sino también aspectos de aprendizaje, curriculares y de contenido específico, es decir de un maestro.

El maestro entonces, pasa de ser un transmisor de conocimiento, un repetidor de información sumergido en una cotidianidad monótona en su práctica pedagógica, a ser un creador de materiales elaborados en plataformas informáticas, un diseñador de ambientes de aprendizaje, por lo tanto a centrar su tarea pedagógica en la caracterización de las necesidades de sus alumnos y en la implementación de soluciones apoyado en las tecnologías de la información.

La concepción de la pedagogía como una "disciplina que tiene por objeto la educación y como funciones la caracterización cultural, la proyección y la intervención de la cultura" (Maldonado, 1995-1996: 326), implica la elaboración de proyectos pedagógicos como formas de lograr cambios educativos, es decir, de elaborar propuestas que partiendo de una situación real del contexto escolar busquen implementar medios y realizar actividades que permitan llegar a una situación ideal utilizando recursos, estrategias y tiempos determinados previamente.

La concepción expuesta anteriormente trae como consecuencia que el maestro reflexione continuamente sobre su quehacer educativo y se convierta en un diseñador de innovaciones dentro su práctica pedagógica y a la vez un investigador permanente de la implementación de las mismas en el contexto escolar.


CARACTERÍSTICAS DEL SOFTWARE EDUCATIVO

En el sector educativo se requiere que el software posea características que conjuguen elementos de manejo de información, presentación de la misma y actividades determinadas, de tal manera que se cumpla con los objetivos pedagógicos que se buscan, lo cual hace de esta una tarea compleja.

La complejidad en la elaboración del software educativo radica en que requiere tomar múltiples decisiones no solo de orden técnico sino también de orden pedagógico y de diseño. Sin embargo, se podría afirmar que el aspecto central es el pedagógico, pues en torno a su concepción y las decisiones que se tomen allí, se determina la forma en que se desarrollan los restantes aspectos.

De acuerdo con las necesidades detectadas en el proceso de aprendizaje de los estudiantes, es posible elaborar diferentes tipos de software educativo.




Consideraciones más relevantes del software educativo.

Previo al proceso de elaboración de un software educativo resulta imprescindible tener en cuenta dos elementos de suma importancia:
  1. Determinar la existencia de un problema educativo a resolver.
  2. Asegurar que la computadora efectivamente posee ventajas cualitativas sobre otros medios educativos para resolver el problema.

Existen diversas metodologías que tratan este tema. Vamos a analizar una, que tiene su base en el denominado modelo de cascada y resume diferentes aspectos relacionados con el diseño de materiales instruccionales. Consta de cinco fases o etapas: análisis y requerimientos, diseño, construcción, prueba y mantenimiento.

Análisis y requerimientos: Resulta de vital importancia, ya que en esta etapa se realiza una descripción detallada del objeto de estudio y se elaboran todas las especificaciones, tanto las que se relacionan con la construcción, como con el uso del software. En esta etapa debe quedarnos claro entre otras cuestiones: la necesidad de elaborar el producto (problema pedagógico a resolver), la existencia de otros materiales didácticos, el público al que va dirigido, los objetivos pedagógicos que se pretenden cumplir, los contenidos a tratar y los medios para presentarlos, las herramientas que se utilizarán para el desarrollo, los equipos de trabajo que se conformarán, el hardware necesario tanto para realizadores como para usuarios, la factibilidad técnica y económica de su producción, las formas de distribución y la primera versión del cronograma de trabajo. El resultado más significativo de esta etapa es la escritura de la primera versión del guion.

Diseño: En esta etapa se obtendrá una información detallada de cómo estará estructurado el programa, como progresa o fluye a través de cualquier opción posible dentro de él, elegida por el usuario o por la computadora. Debe incluir, por tanto, un análisis de modularidad y jerarquía (la utilización de mapas conceptuales favorece el trabajo), y tener en cuenta todos los requerimientos del público al que está dirigido y ante todo el diseño de la interfaz de cada una de las pantallas. Aquí se define la organización interna del producto (directorios, archivos, etc.). También debe quedar definido el protocolo de pruebas que se empleará.

Construcción: Aquí se cumplen dos tareas de singular importancia: la obtención y edición de todos los medios que serán empleados y la programación, es decir, la codificación de los módulos definidos con anterioridad. Al final de esta fase se debe obtener un código claro y documentado, así como trabajar por la utilización de herramientas y bibliotecas comunes. Si además de los sistemas de ayuda que se programen para asistir al usuario durante la ejecución del software se decide incluir otra documentación, manual o recomendaciones, deben ser escritas en esta etapa.

Prueba: Es necesaria una comprobación sistemática para buscar los posibles errores; se debe velar por el cumplimiento satisfactorio de los objetivos seleccionados con la confiabilidad del software desde los puntos de vista conceptual, de la utilización y de la representación o codificación. En la evaluación sistemática del prototipo y del producto final, deben participar no solo el colectivo de realización sino también otros expertos en informática educativa y de la materia en cuestión, además de una representación del público al que está dirigido el software.

Mantenimiento: La correcta utilización de una metodología en el desarrollo de un software posibilita el mantenimiento efectivo de éste. Se hace necesario actualizar los comentarios del código y la documentación correspondiente para hacer cualquier modificación que garantice la competitividad del producto. Un registro de usuarios permite obtener, de forma real, un análisis riguroso de dificultades y errores en el software, así como de sus aciertos.
En las etapas mencionadas con anterioridad, resulta muy importante, que el jefe de proyecto vele porque se cree y mantenga la documentación mínima, así como la comunicación entre los distintos miembros de los equipos de trabajo.



  • Hacer un software educativo no es solo una tarea de ingenieros, sino la extrapolan en el ámbito digital de lo que un docente hace diariamente: crear materiales educativos, sólo que en este caso, estos materiales serán utilizados en un contexto específico. Es sumamente importante para ello tener en cuenta en el proceso de producción los aspectos pedagógico, informático y comunicativo, parar garantizar la realización de un producto de calidad.

Software Educativo


Se denomina software educativo al que está destinado a la enseñanza y el aprendizaje autónomo y que, además, permite el desarrollo de ciertas habilidades cognitivas.

Así como existen diferencias entre las filosofías pedagógicas, también se encuentra una amplia gama de enfoques para la creación de software educativo, atendiendo a los diferentes tipos de interacción que se origina entre los actores de los procesos de enseñanza y aprendizaje: enseñaste, apretendiente, conocimiento, computadora. Existen principalmente dos tendencias: enfoque de instrucción asistida por computadora (Computer Assisted Instruction), y el enfoque de software educativo abierto.

EVOLUCIÓN DEL SOFTWARE EDUCATIVO
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La programación de computadoras era un "arte de andar por casa" para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costes a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. El software se diseñaba a medida para cada aplicación y tenía una distribución relativamente pequeña.

La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. Debido a este entorno personalizado del software, el diseño era un proceso implícito, realizado en la mente de alguien y, la documentación normalmente no existía.

La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - maquina. Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de minutos.

Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos.

La segunda era se caracterizó también por el establecimiento del software como producto y la llegada de las "casas del software". Los patronos de la industria, del gobierno y de la universidad se aprestaban a "desarrollar el mejor paquete de software" y ganar así mucho dinero.

Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencia fuente.

Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido. Estas actividades se llamaron colectivamente mantenimiento del software.

La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software.

La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnósticos de suero sanguíneo.

La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas que se han convertido en la norma.

Al igual que el hardware evoluciona, también evoluciona la concepción del software tanto básico como aplicado y por supuesto surge el software educativo. Los primeros usos fueron para desempeñar las mismas y más tradicionales tareas del profesor: explicar unos contenidos, formular preguntas sobre los mismos y comprobar los resultados; el interés de estas aplicaciones surgía ante la posibilidad de una instrucción individualizada, fundamentalmente de tipo tutorial.

Teorías Del Aprendizaje

Las teorías del aprendizaje pretenden describir los procesos mediante los cuales tanto los seres humanos, como los animales aprenden. Numerosos psicólogos y pedagogos han aportado sendos teorías en la materia.

Las diversas teorías ayudan a comprender, predecir y controlar el comportamiento humano, elaborando a su vez estrategias de aprendizaje y tratando de explicar cómo los sujetos acceden al conocimiento. Su objeto de estudio se centra en la adquisición de destrezas y habilidades en el razonamiento  y en la adquisición de conceptos.

El estudio de las teorías del aprendizaje; por una parte nos proporcionan un vocabulario y un armazón conceptual para interpretar diversos casos de aprendizaje. Por otra parte nos sugieren dónde buscar soluciones para los problemas prácticos; aunque ellas no nos dan soluciones, pero dirigen nuestra atención hacia ciertas variables que son fundamentales para encontrar la solución. (De la Mora, 1979)

Casi todas las teorías tienen un sustento filosófico-psicológico, han podido ser adaptadas, para lograr imitar sus tendencias en el campo pedagógico, pudiendo así trasladarlas al aula, y poniendo en práctica. (Baggini, 2008).

Según Lakatos (1978), una teoría es mejor que otra cuando reúne estas condiciones:
  • Logra una disminución de contenido empírico con respecto a la teoría anterior, es decir, predice hechos que aquella no predecía.

  • Según De la Mora (1979) las funciones de las teorías del aprendizaje son:
  1. Realizar un análisis más profundo sobre algunos de los aspectos de aprendizaje más dignos de ser investigados.
  2. Resumir una gran cantidad de conocimientos acerca de las leyes del aprendizaje en un espacio relativamente corto.
  3. Explicar en forma creativa “qué” es el aprendizaje y “por qué” actúa como lo hace. Buscan proporcionar una comprensión básica sobre el aprendizaje.
Por consiguiente, lo que caracteriza una buena teoría en la terminología es su capacidad para predecir e incorporar nuevos hechos, frente aquellas otras teorías que se limitan a explorar lo ya conocido. Un programa puede ser progresivo teóricamente cuando realiza predicciones nuevas aunque no sean corroboradas o empíricamente cuando corrobora a alguna de las predicciones. Un programa progresivo puede dejar de serlo cuando agota su capacidad predictiva y se muestra incapaz de extenderse hacia nuevos dominios si logra hacer nuevas predicciones parcialmente corroboradas.

Lakatos (1978) piensa que una nueva teoría se impondrá sobre otra vigente, cuando además de explicar todos los hechos relevantes que esta explicaba, se enfrente con éxito a algunas de las anomalías de las que la teoría anterior no podrá darse cuenta.



Las teorías del aprendizaje conforman un variado conjunto de marcos teóricos que a menudo comparten aspectos y cuestiones o incluso, suponen postulados absolutamente contradictorios.