5. tipos de software

17
Daniel Merchán López. 2013 57 Historia del software en computación aplicado a la informática educativa. 3. Evolución general del software. 3.1. Introducción.[30][31][7][32] Al principio, y como hemos visto anteriormente en las diferentes máquinas de calcular, el software no tuvo demasiada importancia. Los computadores eran grandes, caros y complejos, y el trabajo se desarrollaba con unos pocos programas. Sin embargo hoy en día tiene más peso específico el software que el hardware, pues sin el software el hardware quedaría inutilizado. Podemos decir que el software es la parte lógica de un sistema informático con un conjunto de elementos lógicos que realizan las tareas que se le manda. Todo elemento lógico se debe almacenar en un elemento físico, siendo los soportes de las computadoras la memoria central y las memorias auxiliares. El software asegura que el programa o sistema cumpla por completo con sus objetivos, opere con eficiencia, este adecuadamente documentado, y sea suficientemente sencillo de operar. Dicho de otro modo, el software nos ayuda a las personas a resolver cierto tipo de problemas, nosotros se los contamos y ésta nos ofrece diversas soluciones. Como hemos dicho el software es distinto al hardware pues el primero es la parte lógica y el segundo la parte física, sin embargo el software actual ha evolucionado a partir de las placas base y otros dispositivos utilizados por otras computadoras como la ENIAC. El matemático John von Neuman (1903-1957), en 1945 escribió un informe en el que proponía que las instrucciones de cualquier programa se podían almacenar en la memoria junto con los datos. Cada computadora creada desde entonces se ha basado en el concepto de programa almacenado. Éste concepto estableció la industria del software. Los programadores de hoy en día escriben programas en lugar de cambiar interruptores o parchear cables introduciéndolos después en la memoria del ordenador a través de teclados u otro dispositivo de entrada. Estos programas forman el software de la máquina. He hablado de programa, a continuación voy a definirlo más formalmente: En la RAE hay diferentes definiciones de programa, pero nos quedamos con la que nos interesa relacionada con el ámbito informático, un programa es un " conjunto

Upload: daniel-merchan

Post on 18-Dec-2014

512 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 5. tipos de software

Daniel Merchán López. 2013

57 Historia del software en computación aplicado a la informática educativa.

3. Evolución general del software.

3.1. Introducción.[30][31][7][32] Al principio, y como hemos visto anteriormente en las diferentes máquinas de calcular, el software no tuvo demasiada importancia. Los computadores eran grandes, caros y complejos, y el trabajo se desarrollaba con unos pocos programas. Sin embargo hoy en día tiene más peso específico el software que el hardware, pues sin el software el hardware quedaría inutilizado. Podemos decir que el software es la parte lógica de un sistema informático con un conjunto de elementos lógicos que realizan las tareas que se le manda. Todo elemento lógico se debe almacenar en un elemento físico, siendo los soportes de las computadoras la memoria central y las memorias auxiliares. El software asegura que el programa o sistema cumpla por completo con sus objetivos, opere con eficiencia, este adecuadamente documentado, y sea suficientemente sencillo de operar. Dicho de otro modo, el software nos ayuda a las personas a resolver cierto tipo de problemas, nosotros se los contamos y ésta nos ofrece diversas soluciones.

Como hemos dicho el software es distinto al hardware pues el primero es la parte lógica y el segundo la parte física, sin embargo el software actual ha evolucionado a partir de las placas base y otros dispositivos utilizados por otras computadoras como la ENIAC. El matemático John von Neuman (1903-1957), en 1945 escribió un informe en el que proponía que las instrucciones de cualquier programa se podían almacenar en la memoria junto con los datos. Cada computadora creada desde entonces se ha basado en el concepto de programa almacenado. Éste concepto estableció la industria del software. Los programadores de hoy en día escriben programas en lugar de cambiar interruptores o parchear cables introduciéndolos después en la memoria del ordenador a través de teclados u otro dispositivo de entrada. Estos programas forman el software de la máquina. He hablado de programa, a continuación voy a definirlo más formalmente:

En la RAE hay diferentes definiciones de programa, pero nos quedamos con la que nos interesa relacionada con el ámbito informático, un programa es un " conjunto

Page 2: 5. tipos de software

Daniel Merchán López. 2013

58 Historia del software en computación aplicado a la informática educativa.

unitario de instrucciones que permite a un ordenador realizar funciones diversas, como el tratamiento de textos, el diseño de gráficos, la resolución de problemas matemáticos, el manejo de bancos de datos, etc." [33].

No se puede definir software formalmente de una sola manera, a continuación expondremos varias definiciones de él:

La RAE define el software como el "conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora" [3].

Según el estándar 729 del IEEE el software se puede definir como "el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación" [34].

Centrándonos en la definición del IEEE, el software no se limita únicamente a los programas de computación en sus distintos estados: código fuente, binario o ejecutable; hay que incluir su documentación, los datos que tenemos que procesar e incluso la información de usuario, es decir, el software abarca todo lo intangible, o dicho de otra manera todo lo que no es físico.

El término software fue utilizado por primera vez por John W. Tukey (1915-2000) en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.

Pero como podemos suponer, no todo el software es igual. Hay diferentes categorías o tipos que se diferencian mucho entre sí (Fig. 35). Hay tres tipos más importantes y que sin ellos las personas no podría utilizar las computadoras. Estamos hablando de software de control, software de aplicación y los lenguajes de programación.

El software de Control o sistema de explotación es el software que controla el funcionamiento de los programas que se ejecutan, y a la vez administra los recursos del hardware, facilitando el uso del ordenador de una forma eficiente. Dentro de este apartado se incluye el sistema operativo, el intérprete del lenguaje de control, y el software de diagnóstico y mantenimiento.

Los programas de ampliación, o también llamado software de aplicación, es el software diseñado y escrito para realizar una tarea específica, ya sea personal, o de procesamiento. Aquí se incluyen las bases de datos, tratamientos de textos, hojas electrónicas, gráficas, comunicaciones, etc. En este apartado se incluyen los propios programas realizados por los usuarios. Hay paquetes

Page 3: 5. tipos de software

Daniel Merchán López. 2013

59 Historia del software en computación aplicado a la informática educativa.

comerciales que incluyen de forma integrada la mayoría de las aplicaciones citadas anteriormente, que se suelen denominar paquetes integrados (distintas aplicaciones o utilidades que se diseñan para lograr un objetivo y una filosofía de utilidad común) de ofimática o suites de ofimáticas, aunque el ámbito de uso de las mismas supera con creces el ámbito de la gestión administrativa. Un ejemplo de paquete integrado es Microsoft Office, OpenOficce o LibreOffice. Existe una cooperación entre los distintos módulos, es decir, dentro de una aplicación se puede llamar a otra, para conseguir un fin compartido.

Por último, los lenguajes de programación son las herramientas empleadas por el usuario para desarrollar programas, que después ejecutará el ordenador. Estos lenguajes se utilizan para crear programas que controlen el comportamiento físico y lógico de una máquina, expresar algoritmos con precisión, o como modo de comunicación humana. Generalmente están formados por un conjunto de símbolos, reglas sintácticas y reglas semánticas que definen su estructura, el significado de sus elementos y de sus expresiones. Los programas siempre siguen el mismo proceso, se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático. A este proceso se le llama programación.

Fig. 35. Tipos de software.

Page 4: 5. tipos de software

Daniel Merchán López. 2013

60 Historia del software en computación aplicado a la informática educativa.

Hoy en día hay software creado para la gestión económica, la esfera militar, las investigaciones, el entrenamiento, la salud, la educación y otros muchos campos de aplicación. Sin embargo, se ha logrado alcanzar una alta relevancia en la educación, teniendo en cuenta, precisamente, el inmenso volumen de información de que dispone el hombre en los momentos actuales y los propios factores que han motivado una masividad en el uso de esta tecnología.

3.2. El software de Control.[7][30]

Como hemos dicho anteriormente, hay tres tipos de software de control: el sistema operativo, el intérprete del lenguaje de control, y el software de diagnóstico y mantenimiento.

El software de diagnóstico y mantenimiento está formado por los programas que utilizan las personas responsables del mantenimiento e instalación del software y del hardware del computador. Estos programas sirven para localizar automáticamente las averías de un determinado dispositivo o componente, o las causas de un mal funcionamiento de algún modulo del sistema operativo. Los programas de mantenimiento los utilizamos para instalar un nuevo sistema operativo, versiones mejoradas del mismo o para modificarlo y realizar cambios en el hardware. Este tipo de programas se presentan en ventanas de menús o dialogo, a través de las cuales se especifican los parámetros deseados por el correcto funcionamiento del sistema operativo, y las características del hardware concreto de que dispone el computador.

El intérprete del lenguaje de control se dedica a coordinar el funcionamiento de todos los recursos y elementos del ordenador, es decir, la información, las operaciones de entrada/salida, la memoria, el procesador...; resumiendo, todo el entorno del sistema. Este programa traduce las órdenes que introducen los usuarios, por medio de un conjunto de instrucciones facilitadas por él mismo directamente al núcleo o kernel y al conjunto de herramientas que forman el sistema operativo. Las instrucciones estas divididas en grupos. Cada grupo está destinado a tareas diferentes. Uno de ellos engloba la gestión del procesador, se encarga de preparar los programas del usuario para ejecutarlos y asignar los tiempos en el procesador. También asigna los periféricos cuando estos son solicitados por cualquier programa y relanzan los programas cuando hay alguna interrupción. Otro grupo de instrucciones gestionan la memoria; asignan y controlan el almacenamiento en la memoria interna y externa de la computadora porque es un recurso escaso. Por último, gestionan la entrada/salida de los distintos dispositivos.

Page 5: 5. tipos de software

Daniel Merchán López. 2013

61 Historia del software en computación aplicado a la informática educativa.

3.2.1. El sistema operativo.[32][35][36][37][38]

El sistema operativo es el software que controla la ejecución de todas las aplicaciones y de los programas de software de sistema, es un programa que controla la ejecución de los programas de aplicación y actúa como interfaz entre las aplicaciones del usuario y el hardware de un computador.

Puede considerarse que un sistema operativo tiene tres objetivos, estos son: comodidad, eficiencia y capacidad de evolución. La comodidad porque un sistema operativo hace que un computador sea más cómodo de utilizar; la eficiencia, porque un sistema operativo permite que los recursos de un sistema informático se aprovechen de una manera más eficiente; y la capacidad de evolución porque un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y, a la vez, no interferir en los servicios que brinda.

Fig. 36. Funciones del sistema operativo.

Estructura de los sistemas operativos.

Un sistema operativo es un sistema grande y complejo compuesto por una serie de componentes con funciones definidas. Dependiendo del sistema operativo que sea estructurará estos componentes de una manera u otra. Hay dos grandes grupos; los sistemas operativos monolíticos y los sistemas operativos estructurados.

Page 6: 5. tipos de software

Daniel Merchán López. 2013

62 Historia del software en computación aplicado a la informática educativa.

Sistemas operativos monolíticos.

Un sistema operativo monolítico no tiene estructura. Todos sus componentes están integrados en un único programa que ejecuta en un único espacio de direcciones. Dicho de otro modo, el sistema operativo se escribe como un conjunto de procedimientos, cada uno de ellos puede invocar a otro cuando lo necesite.

Cuando se quiere construir un programa, primero se deben compilar los procedimientos individuales y después se vinculan en un solo archivo objeto usando el linker del sistema. En éstos sistemas no hay ocultación de la información pues cada procedimiento puede ser visto por los demás. Para solucionar este problema se dota de una cierta estructura aunque anteriormente decía que no había. Las llamadas al sistema proporcionadas por el sistema operativo se solicitan colocando los parámetros en lugares definidos, y ejecutando después una instrucción de trampa especial conocida como llamada al kernel o llamada al supervisor.

Estos sistemas han surgido de otros más pequeños y sencillos a los que se le añaden funcionalidades. El problema de ello es que todas estas funcionalidades están al mismo nivel. También es muy complicado modificar el sistema para añadir nuevas funcionalidades, pues modificar una característica conlleva modificar un gran programa compuesto por miles de líneas de código fuente y funciones. Dos sistemas operativos de este tipo son MS-DOS y UNIX.

Sistemas operativos estructurados.

Hay dos tipos de sistemas estructurados; los sistemas por capas y los sistemas cliente-servidor.

Sistemas por capas.

En este sistema el sistema operativo se organiza por capas de manera jerárquica, pues cada una se construye sobre la que está abajo de ella, utilizando sus servicios y con una interfaz clara y bien definida. Su principal ventaja es la modularidad y la ocultación de la información

Fig. 37. Sistema por capas del sistema operativo THE.

Page 7: 5. tipos de software

Daniel Merchán López. 2013

63 Historia del software en computación aplicado a la informática educativa.

Una capa no necesita saber cómo se ha implementado la capa sobre la que está construida, sino la interfaz que ofrece. Esto facilita la depuración verificación del sistema, por lo tanto la capas se pueden ir construyendo y depurando de manera independiente.

El primer sistema operativo que tuvo esta estructura fue el sistema THE construido en la Technische Hogeschool Eindhoven de los países bajos por E.W. Dijkstra en 1968 y sus estudiantes. Estaba formado por seis capas como podemos ver en la figura 37. Era un sistema sencillo por lotes para la computadora holandesa Electrológica X8, que tenía 32K de palabras de 27 bits.

La capa 0 se ocupaba del reparto del procesador, conmutando entre procesos cuando ocurrían interrupciones. Las siguientes capas del sistema estaban compuestas por procesos secuenciales independientes, pues cada uno de los cuales podían programarse sin preocuparse por el resto. Esta capa se ocupaba de la multiprogramación de la UCP.

La capa 1 repartía la memoria. Distribuía los espacios para la memoria principal y un tambor de 512 palabras que se utilizaba para contener las diferentes partes de los procesos que no cogían en la memoria principal. Sobre esta capa los procesos no tenían que preocuparse de si estaban en la memoria o el tambor. La capa 2 manejaba la comunicación entre cada proceso y la consola del operador. La capa 3 administraba los dispositivos de E/S y colocaba en buffers las corrientes de información que tenían. En la capa 4 se encontraban los programas de usuario y en la última capa se encontraba el operador del sistema.

Otro ejemplo de sistema operativo por capas fue el OS/2, descendiente del MS-DOS.

Sistemas cliente servidor.

Fig. 38. Sistema cliente/servidor.

En este sistema la mayoría de los servicios y funciones del sistema están implementados en procesos de usuario, dejando una parte pequeña del sistema para que se ejecute en modo núcleo. Como podemos ver en la figura 38, el sistema operativo está formado por varias partes y cada una se puede desarrollar por

Page 8: 5. tipos de software

Daniel Merchán López. 2013

64 Historia del software en computación aplicado a la informática educativa.

separado. Aparte de esto, y como todos los servidores se ejecutan como procesos de modo usuario, no tienen acceso directo al hardware. El trabajo el núcleo es manejar la comunicación entre los clientes y los servidores.

Si se produce un error en el servidor de archivos, es posible que éste servicio se caiga, pero no se caerá toda la máquina.

La principal desventaja de estos sistemas es que presentan una mayor sobrecarga en el tratamiento de los servicios que los sistemas monolíticos. Esto ocurre porque los distintos componentes de un sistema operativo de este tipo se ejecutan en espacios de direcciones distintos, lo que hace que su activación requiera más tiempo.

Sistemas operativos de este modelo serian el Minix, Mach y Amoeba

Funciones de los sistemas operativos.

El sistema operativo realiza dos funciones que básicamente no están relacionadas entre sí y, dependiendo de lo que tengamos que utilizar, empleamos una función o la otra.

Sistema operativo como interfaz usuario/computador.

Cuando un usuario está trabajando con el ordenador es necesario interactuar con el sistema operativo para poder llevar a cabo las diferentes operaciones. Por ejemplo, ejecutar un programa o borrar un archivo son tareas que se pueden hacer utilizando los servicios del sistema operativo sin necesidad de escribir un programa que realice las tareas anteriores. Dicho de otro modo, el programa que oculta la verdad acerca del software y presenta al usuario una vista sencilla de los archivos es el sistema operativo. Al igual que oculta asuntos desagradables como interrupciones, temporizadores, administración de memoria y otras funciones de bajo nivel, presenta una interfaz sencilla orientada a archivos. Actúa como mediador, facilitándole al programador y a los programas de aplicación el acceso y uso de todas estas características y servicios. Por todo ello el sistema operativo es el programa de sistemas más importante.

Como interfaz de usuario, la función del sistema operativo es presentar al usuario el equivalente a una máquina virtual más fácil de programar que el hardware. No todo el mundo que utiliza un sistema informático pretende realizar tareas de programación si no únicamente trabajar de modo interactivo con él. La interfaz de usuario ha sufrido grandes modificaciones a lo largo de los años. Esto viene condicionado porque un gran número de personas no tienen conocimientos informáticos. Se ha pasado de interfaces alfanuméricas, que requerían bastante conocimiento informático a interfaces gráficas, que ocultan al usuario la complejidad del sistema. También ha evolucionado la integración de la interfaz de usuario con el resto del sistema operativo. Antes el

Page 9: 5. tipos de software

Daniel Merchán López. 2013

65 Historia del software en computación aplicado a la informática educativa.

módulo que maneja la interfaz de usuario estaba dentro del núcleo del sistema operativo, mientras que ahora esta función la realizan un conjunto de programas externos al núcleo usando los recursos del sistema como cualquier programa.

Los principales servicios que ofrece la interfaz de usuario de un sistema operativo son los siguientes:

Creación de aplicaciones: El sistema operativo debe disponer de editores, ensambladores, enlazadores y depuradores (debuggers), para ayudar al programador en la creación de aplicaciones. Generalmente, estos servicios son formas de programas de utilidad, que realmente no forman parte del sistema operativo, pero que son accesibles a través del mismo.

Ejecución de programas: El usuario tiene que poder ejecutar un programa y controlar su ejecución pero para ello es necesario llevar a cabo un cierto número de tareas. El sistema operativo es el que administra todas esas tareas para el usuario.

Configuración de la interfaz: Cada usuario debe poder configurar el modo de operación de la interfaz de acuerdo a sus preferencias.

Acceso a los dispositivos de E/S: Cada dispositivo de E/S requiere un conjunto propio de instrucciones o de señales de control para su funcionamiento. El sistema operativo proporciona una interfaz que oculta el conjunto de instrucciones de modo que el programador pueda acceder a los dispositivos utilizando lectura y escritura sencillas.

Manipulación de archivos y directorios: La interfaz debe proporcionar operaciones para borrar, crear, renombrar y procesar archivos y directorios.

Acceso al sistema: en el caso de un sistema compartido o público, la interfaz controla el acceso al sistema y a sus recursos. Las funciones de acceso proporcionan seguridad a los recursos y a los datos ante usuarios no autorizados y debe resolver los conflictos de la propiedad de los recursos. El mecanismo de control natural se realizará mediante una contraseña, cada usuario autorizado dispondrá de la suya.

Detección y respuesta de errores: cuando un sistema informático está en funcionamiento pueden producirse una serie de errores. Entre estos se incluyen los errores internos y externos del hardware, como los errores de memoria, fallos o mal funcionamiento de dispositivos y distintos tipos de errores de software, como el desbordamiento aritmético, el intento de acceder a una posición prohibida de la memoria y la incapacidad del sistema operativo para satisfacer la solicitud de una aplicación. En cada caso, el sistema operativo debe dar una respuesta que elimine la condición de error con el menor impacto posible sobre las aplicaciones que están en ejecución.

Sistema de ayuda interactivo: La interfaz debe incluir un entorno de ayuda completo con toda la documentación del sistema.

Page 10: 5. tipos de software

Daniel Merchán López. 2013

66 Historia del software en computación aplicado a la informática educativa.

El sistema operativo como administrador de recursos.

El ordenador está compuesto por un conjunto de recursos para el movimiento, almacenamiento y proceso de datos y para el control de estas funciones. El sistema operativo es el que administra éstos recursos. El sistema operativo visto como algo cuya función primordial es ofrecer a los usuarios una buena interfaz es una visión descendente. En esta visión como administrador, la misión del sistema operativo es asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S entre los diferentes programas que compiten por ellos.

El sistema operativo realmente es un conjunto de programas de computador y como otros programas, proporciona instrucciones al procesador. La diferencia clave está en el propósito del programa. El sistema operativo dirige al procesador en el empleo de los recursos del sistema y en el control del tiempo de la ejecución de otros programas pero para que el procesador pueda hacer estas cosas, debe cesar la ejecución del programa del sistema operativo y ejecutar otros programas. Así pues, el sistema operativo cede el control al procesador, para hacer algún trabajo útil y luego lo recupera el tiempo suficiente para preparar el procesador y llevar a cabo el siguiente trabajo. Por poner un ejemplo, se da el caso de que tres programas quieren acceder simultáneamente a la impresora, sin el control del sistema operativo sería un caos, pues no pueden imprimir los tres a la vez. La solución que daría el sistema operativo sería almacenar temporalmente en el disco todas las salidas destinadas a la impresora. Cuando un programa haya terminado, el sistema operativo podrá copiar su salida del archivo de disco donde se almacenó a la impresora, mientras que el otro programa puede continuar generando salidas, ajeno al hecho de que dichas salidas no están yendo directamente a la impresora.

Cuando un ordenador es multiusuario, la necesidad de administrar y proteger la memoria, los dispositivos de E/S y demás recursos es aún mayor, ya que de otra manera los usuarios podrían interferirse. Además, es frecuente que los usuarios tengan que compartir no solo hardware, sino también información (archivos, bases de datos, etc.).

3.3. Software de aplicación. Como hemos dicho anteriormente este software es un conjunto de instrucciones pre codificadas diseñadas para resolver problemas de muchos tipos diferentes. Se puede decir que hay cuatro tipos: software de aplicación específica, software de productividad, software de aplicación general y software integrado.

Page 11: 5. tipos de software

Daniel Merchán López. 2013

67 Historia del software en computación aplicado a la informática educativa.

3.3.1. Software de aplicación específica.

Hoy en día existen cientos de paquetes de este software para dar soporte a las funciones específicas de los usuarios en empresas y otros contextos. Por ejemplo en las empresas, respaldan usos gerenciales, empresariales y profesionales, como el procesamiento de transacciones, apoyo para las decisiones, contabilidad, finanzas, administración de recursos humanos y comercio electrónico. Por otra parte, para la ciencia e ingeniería, el software específico desempeña un papel fundamental en la investigación, el desarrollo de la industria y en el diseño de mejores procesos de producción para productos de alta calidad. Y, por último, para la educación el uso de este software es muy extenso. Se puede utilizar tanto para estudiar un examen como para enseñar a contar. Estos programas utilizan técnicas como simulación, exámenes prácticos y tutores computadorizados. Los juegos de computadora también se pueden considerar como software de aplicación específica.

3.3.2. Software de productividad. [31][39]

Es un tipo de software que permite ahorrar tiempo en tareas que resultan repetitivas. Dos ejemplos se pueden considerar los organizadores de escritorio y los shell de DOS.

Los organizadores de escritorio incluyen calculadoras, cuadernos de notas, marcadores automáticos y agendas colocado de tal manera que el usuario pueda acceder de manera fácil y rápida. Todos éstos accesorios residen en la memoria RAM por lo que no es necesario disponer de un dispositivo de almacenamiento. Solo hay que darle a un comando. El primer organizador de escritorio fue SideKick, desarrollado por Borland International. Este organizador desplegaba varios utensilios de escritorio en distintas ventanas sobre la pantalla. El usuario podía utilizar la hoja de cálculo que quisiera junto con la calculadora de Sidekick. Las computadoras de Apple Macintosh tenían construido interiormente un conjunto de accesorios de escritorio que se podían utilizar en cualquier momento. Incluían un reloj con alarma, un libro de notas y una calculadora entre otras utilidades.

Los shell de DOS eran paquetes software que ayudaban a los usuarios que tenían poco conocimiento de sistemas operativos. Con ellos se podían realizar tareas como la copiar, mover y borrar archivos con un doble click. El shell de DOS fue uno de los primeros intentos para administrar los archivos de Windows. Uno de los primeros shell de DOS es PC Tools (Fig. 39), podía ser utilizado como respaldo de archivos o para controlar una computadora desde el teclado de otra. Es una herramienta para trabajar con el ordenador sin necesidad de lidiar con el modo consola, y usando un entorno amigable en modo texto.

Page 12: 5. tipos de software

Daniel Merchán López. 2013

68 Historia del software en computación aplicado a la informática educativa.

Este sistema también permitía listar, copiar, eliminar, visualizar, y editar archivos, así como otras tantas operaciones a nivel de disco. En el año 1987 Central Point Software dueña de la marca lanza al mercado la versión 4, empezándose a denominar PC Tools Deluxe, y pasando a la historia como el programa más copiado de manera ilegal. Por aquel entonces, PC Tools era tan sencillo de utilizar, que cualquiera podía usarlo para copiarlo.

Fig. 39. Interfaz PC Tools versión 1.10.

En junio de 1994 PC Tools fue adquirido por su principal competidor Symantec que finalmente suspendió la línea de productos. PC Tools fue el principal competidor de Norton Utilities, que Symantec había adquirido en 1990.

3.3.3. Software de aplicación general.[40][31]

Esta clase de software puede ser utilizado por cualquier tipo de usuario y sirve para resolver problemas de diferente índole. Aplicaciones que se incluyen en este tipo son las hojas de cálculo, los procesadores de textos, manejo de bases de datos y gráficas. Hoy en día, la mayoría del software para uso general se vende como paquete; es decir con software y documentación para el usuario.

Las hojas de cálculo electrónicas permiten manipular datos numéricos y alfanuméricos dispuestos en forma de tablas compuestas por celdas las cuales están organizadas en una matriz bidimensional de filas y columnas. La celda es la unidad básica de información en la hoja de cálculo, donde se insertan los valores y las fórmulas que realizan los cálculos. Habitualmente es posible realizar cálculos complejos con fórmulas, funciones y dibujar distintos tipos de gráficas.

Fig. 40. Interfaz de la hoja de cálculo Excel.

Page 13: 5. tipos de software

Daniel Merchán López. 2013

69 Historia del software en computación aplicado a la informática educativa.

Hay hojas de cálculo que permiten importar o intercambiar información con otros paquetes de aplicación. Esto permite realizar cálculos adicionales con datos ya procesados. En la figura 40 podemos ver la interfaz de una hoja de cálculo de Excel.

Los procesadores de texto nos permiten crear o modificar documentos escritos por medio de una computadora. Representa una alternativa moderna a la antigua máquina de escribir, siendo mucho más potente y versátil que ésta. No reduce el tiempo que se necesita para producir un informe desde el inicio, pero si proporciona los medios para revisar y generar documentos sin faltas de ortografía pues todos los procesadores de texto incluyen un corrector ortográfico. Disponen también de diccionarios multilingües y de sinónimos que facilitan la redacción.

Fig. 41. Interfaz del procesador de texto OpenOficce.

Los procesadores de texto disponen de bloques que marcan una parte de texto para borrarla, moverla, etc. Se pueden cambiar las fuentes de tamaño y aspecto para imprimirlo como se desee. Hay gráficos que colocan texto, dibujos y gráficas en la página. En la figura 41 podemos ver la interfaz del procesador de texto de OpenOfficce.

También entran en este campo las bases de datos. Una base de datos se puede definir según la RAE como un "conjunto de datos organizado de tal modo que permita obtener con rapidez diversos tipos de información" [41].

Hay un tipo de software que se llama Sistema Gestor de Base de Datos (SGBD) que forman un conjunto de programas que nos permiten almacenar y después procesar los datos de la manera que nosotros deseemos. Estos paquetes software nos ahorran mucho tiempo a la hora de acceder a la información desde un archivo. Estos datos

Page 14: 5. tipos de software

Daniel Merchán López. 2013

70 Historia del software en computación aplicado a la informática educativa.

pueden ser accedidos por la mayoría de los usuarios, por ello, en algunos países se han creado leyes para protegerlos. En España por ejemplo los datos están protegidos por Ley Orgánica de Protección de Datos de Carácter Personal (LOPD). La primera base de datos relacional creada para las microcomputadoras fue dBASE II.

Se puede decir que en un SGBD los datos tienen una independencia. Esto es debido a que el SGBD proporciona dos aspectos de los datos almacenados en ellos: una visión física y una visión lógica. La visión física se relaciona con la localización actual de los datos en el dispositivo, mientras que la visión lógica representa los registros y los campos de datos a medida que son necesarios para el usuario o el programador.

Fig. 42. dBase II cargado en el computador Commodore.

Un SGBD elimina la redundancia de los datos e incrementa la integridad de ellos, es decir, si un elemento de los datos debe ser cambiado, sólo se debe hacer eso en un lugar. Nos da una mayor seguridad en el manejo y normalización de reportes y consultas.

Hay muchos paquetes software destinados a la realización de gráficas. Las gráficas son más fáciles de comprender por usuarios y programadores que acceder directamente a los datos. Las gráficas aumentan la facilidad de compresión y velocidad en cuanto a la recepción de información respecto de la información impresa. Algunos de los paquetes software más conocidos han sido Hardvard Graphics, Applause II, PowerPoint, Corel Draw y Lotus1-2-3. Fig. 43. Interfaz de Hardvard Graphis.

Page 15: 5. tipos de software

Daniel Merchán López. 2013

71 Historia del software en computación aplicado a la informática educativa.

En el caso de Hardvard Graphis (Fig. 43) lanzó su primera versión en 1986 y fue una de las primeras aplicaciones informáticas que le permitía a los usuarios incorporar texto, gráficos y diagramas de flujo dentro de presentaciones en forma de diapositivas.

3.3.4. Software integrado.

El software integrado es la combinación de las aplicaciones generales, es decir, integran en un sólo programa las funciones de procesador de texto, hoja de cálculo, base de datos y, algunos de ellos, algunas capacidades gráficas y de telecomunicaciones. En las últimas versiones de conocidos paquetes también se incluye la opción de trabajar en red (local e Internet). Cada programa genera productos informáticos en formato digital, tales como documentos, imágenes, música, multimedia, etc, utilizando cada uno un entorno particular. Las funciones integradas, generalmente, nos permiten crear, guardar, abrir y cerrar los archivos. Otras funciones serian visualizar, editar, imprimir o reproducir los archivos. Los paquetes integrados nos ofrecen varias ventajas. El precio es menor que el costo total de la compra de los programas individuales y a la vez nos dan una apariencia similar a todas sus aplicaciones, de modo que los usuarios no tienen que memorizar diferentes órdenes y técnicas para efectuar tareas diferentes. El software integrado nos permite transferir datos entre las aplicaciones con rapidez y facilidad. Uno de los paquetes software más conocido es el paquete Office, que incluye programas para procesar textos, hojas de cálculo, diseño de gráficas, etc.

Adicionalmente, algunos de estos productos están orientados al mercado educacional, por lo que tienen un precio reducido y material de apoyo diseñado para las escuelas, institutos y universidades. Sin embargo, es recomendable revisar este material y producir documentos específicos en torno a ellos para cada realidad educativa. Así, muchos conceptos básicos de uso de un software podrán ser comunes, pero los ejemplos y sus aplicaciones dependerán del contexto social y educacional del establecimiento.

3.4.Lenguajes de programación.[19][42][11]

Un lenguaje de programación es un conjunto de símbolos, caracteres y reglas que combinados entre sí expresan algoritmos. Estos lenguajes posibilitan la transmisión de instrucciones a la CPU. Poseen un léxico (vocabulario o conjunto de símbolos permitidos), una sintaxis, que indica cómo se debe realizar las construcciones del lenguaje, y una semántica que determina el significado de cada construcción escrita correctamente.

Page 16: 5. tipos de software

Daniel Merchán López. 2013

72 Historia del software en computación aplicado a la informática educativa.

Los símbolos que he citado anteriormente se deben traducir en un conjunto de señales eléctricas representadas en código binario (0 y 1). El motivo por el que se deben traducir estas señales es que las computadoras solo entienden el lenguaje binario o código máquina.

El uso de la palabra programar (to program) para definir la acción de fijar las acciones que debe realizar un compilador tiene su origen en los creadores del ENIAC en la Moore School of Electrical Engineering, de la Universidad de Pensilvania. En ese momento, la palabra más utilizada era configurar (to set up), pues el ENIAC se programaba cambiando conexiones y activando interruptores. Con la separación de hardware y software se forma la idea de programación.

Los lenguajes de programación se suelen clasificar mediante criterios. Uno de ellos es el nivel. El nivel hace referencia a la proximidad a la máquina de la forma de redactar las sentencias en él. Los lenguajes de bajo nivel son el ensamblador y el lenguaje binario (de ceros y unos). Los lenguajes e alto nivel se pueden clasificar, atendiendo al estilo de programación de cada uno, en dos grupos:

Por un lado están los lenguajes basados en la asignación de valores también llamados lenguajes imperativos o procedurales. Éstos programas utilizan variables para almacenar valores y realizan operaciones con los datos almacenados. Lenguajes de este tipo son FORTRAN, COBOL y BASIC entre otros. En este grupo se encuentran los lenguajes orientados a objetos, implantados en la década de los 80. Los programas se descomponen en objetos que implementan partes del sistema encapsulando los datos que almacenan su estado junto con los métodos que se utilizan para acceder a ellos. Es una ventaja porque así las distintas partes del programa son menos dependientes entre sí. Lenguajes de este tipo son Objetive C, C++, PHP 5,etc.

Por otro lado se encuentran los lenguajes basados en la definición de funciones o relaciones. No utilizan instrucciones de asignación lo que quiere decir que sus variables no almacenan funciones. Los programas están formados por una serie de definiciones de funciones como los lenguajes funcionales (LISP) o de predicados, llamados lenguajes de programación lógica como PROLOG.

A un nivel más alto que el de los lenguajes de programación se encuentras los lenguajes declarativos. En los lenguajes de órdenes, los programas están formados por sentencias que ordenan qué es lo que se quiere hacer, no teniendo el programador que indicar al computador el proceso detallado de cómo hacerlo. Lenguajes de este tipo son NATURAL e IMS que recuperan información de la base de datos y SAS que realiza cálculos estadísticos.

Page 17: 5. tipos de software

Daniel Merchán López. 2013

73 Historia del software en computación aplicado a la informática educativa.

Como los lenguajes de alto nivel no pueden ser leídos por la máquina se utilizan unos traductores del lenguaje. El sistema encargado de traducir estos programas, denominados programas fuentes, puede ser un ensamblador, intérprete o compilador.

Un ensamblador transforma los programas escritos en ensamblador a su equivalente en código máquina o código binario para que la CPU los pueda ejecutar. Un intérprete es un programa de software encargado de procesar y traducir cada instrucción o sentencia de un programa escrito en un lenguaje de alto nivel a código máquina. La CPU ejecuta la orden ya traducida y sin ningún error de sintaxis. La traducción y la ejecución no se realizan cómo procesos independientes, sino en una misma operación e instrucción por instrucción. En la imagen posterior podemos ver la diferencia entre compilador e intérprete:

Fig. 44. Diferencia entre compilador e intérprete.

Un compilador traduce un programa fuente a un programa objeto, escrito en lenguaje ensamblador o máquina. El programa fuente se encuentra en un archivo y el programa objeto se almacena como archivo en memoria para ser procesado posteriormente. Cuando el programa está traducido se ejecuta independientemente del compilador. El proceso general para compilar seria, edición (escritura del programa y grabación en un soporte), compilación (traducción del programa), linkado o montaje (enlazar el programa objeto con rutinas internas del lenguaje) y ejecución (llamada del programa ejecutable).