Software

Software

La computadora tiene la capacidad de llevar a cabo tareas que culminan con distintos tipos de aplicaciones, con diversos y variados productos finales. Por eso se la considera una máquina de propósitos general: su uso varía según el objetivo final al que aspire el usuario.
El software es el conjunto de instrucciones que controlan el funcionamiento del sistema de computación. El software está constituido por programas que se cargan en la Unidad Central de Proceso para su ejecución.
Todo dato introducido en la computadora se modifica hasta que se consigue un resultado, y el componente lógico responsable de este proceso es el software, que incluye distintos programas. Según el uso para lo cual fueron creados, éstos se clasifican en software de programación, software de sistema, software de aplicación y software de compresión.

SOFTWARE DE PROGRAMACIÓN: se utiliza para crear el software de sistema y el de aplicación. Entre los más conocidos tenemos Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, PHP, Clarion. Según el nivel de complejidad que presenta y el objetivo para el cual fue diseñado se distinguen tres tipos de lenguajes de programación: máquina, de bajo nivel y alto nivel.

  • Máquina: son aquellos cuyas instrucciones son directamente entendibles por la computadora, escribir un programa en lenguaje máquina es muy difícil ya que es código binario.
  •  Bajo nivel: sus instrucciones ejercen un control directo sobre el hardware y depende de la estructura física de la computadora que lo utiliza.
  • Alto nivel: son independientes del equipo en el que se utilizan. Utilizan instrucciones expresadas en un lenguaje natural, especialmente el inglés.

Se dice que un lenguaje de programación es de una generación superior a otra, cuando está más cerca del lenguaje natural. Hoy en día utilizamos lenguajes de tercera y cuarta generación.  Los primeros están constituidos por una serie de instrucciones en lenguaje más o menos comprensible, con una sintaxis lógica cercana a la sintaxis que requiere la CPU. Los de cuarta generación tienen como objetivo que los seres humanos, sin preparación en cuanto a conocimientos técnicos sobre la lógica en que las computadoras actúan, podamos comunicarnos con ellas, en forma cercana a la modalidad que nos comunicamos con nuestros semejantes.
Ejemplo de lenguaje de tercera generación podemos mencionar COBOL, y de  cuarta generación, los lenguajes administradores de bases de datos en general, que adoptan la forma de lenguajes de consulta estructurados (SQL del inglés structures query lenguaje).

Compiladores e intérpretes
El programa en el lenguaje que escribimos las instrucciones se llama programa fuente, mientras que el programa en el lenguaje que la máquina las interpreta se llama programa objeto.

El proceso de transformación del programa fuente al programa objeto se denomina compilación, y es realizado por la máquina mediante la ejecución del programa compilador.
En este proceso, el programa que se ejecuta en la CPU es el compilador, la entrada es el programa en lenguaje fuente y la salida es el programa en el lenguaje objeto.
Los compila dores, como primera parte del proceso, validan la corrección interna del programa fuente (el compilador no puede validar errores en cuanto a la funcionalidad del programa; por ejemplo si en lugar de sumar se indica que reste). Esto es, validan que el programa sea consistente en sí mismo, que se respete la sintaxis propia del lenguaje de programación, etc.
Si se detectan errores, los mismos son comunicados (por una impresión o información en pantalla) al programador, si no se detectan errores se genera el programa objeto o ejecutable.
Este ejecutable es guardado en los almacenamientos del sistema, para su posterior  ejecución todas las veces que sea requerido. Este proceso de almacenamiento de los programas fuentes y objetos se denomina catalogación. Entonces nos encontramos con una biblioteca de programas fuentes y otra de programas objetos. 
Si en algún momento se requiere la modificación de este programa, el mismo debe ser nuevamente programado  y compilado, de ese modo hay otra versión del programa.

Así el programa interprete se encarga de leer el programa fuente, interpretarlo en lenguaje máquina y ejecutarlo en el momento. Permite al programador seguir las instrucciones del programa y facilita la depuración de errores.


SOTWARE DE SISTEMA: conjunto de programas denominados sistemas operativos. Permite la comunicación entre la computadora y el usuario. El sistema operativo trabaja directamente sobre el hardware:
·   Permite la eficaz utilización de los recursos físicos.
·   Proporciona al usuario las herramientas para configurar el equipo.
·   Administra la memoria.

El sistema operativo es el software de más bajo nivel, indica y supervisa las operaciones de la CPU. Sus componentes pueden agruparse así:
·    Programa de carga inicial, boot. Es un programa pequeño que le indica a la computadora las primeras acciones que debe realizar, cuando se enciende y luego de los chequeos establecidos por hardware, incluyendo los programas y archivos que ofrecen datos, que requiere el sistema operativo para trabajar en cada computadora en particular, y el resto de los programas que conforman el sistema operativo.
·   Los programas de control. Constituyen el núcleo del sistema operativo, y son los programas que se ocupan de:
o   El control de los recursos físicos del sistema; manejo de entradas y salidas, lectura y grabación de archivos, manejo de los contenidos de la memoria, ejecución de procesos de transformación de datos en la CPU, etcétera.
o   La coordinación de las acciones de esos recursos, tomar los datos y llevarlos al punto correcto para su procesamiento, coordinar las diferentes funciones requeridas por múltiples programas que se encuentren en ejecución, etc.
·    Los objetivos del S.O. son:
o   Utilizar al máximo la capacidad de proceso del sistema.
o   Minimizar el tiempo de espera de los equipos periféricos (unidades de entrada, salida y almacenamiento)
o   Garantizar el correcto procesamiento.

Según el número de usuario que utilicen la computadora se clasifican en:
· Monousuario: están diseñados para que la computadora sea operada por una sola persona.
· Multiusuario: permite, que desde una computadora central, se administre una red de computadoras. Cada computadora comparte datos y programas.

Según la cantidad de tareas que se pueden hacer simultáneamente se clasifican en:
·  Monotarea: cuando se ejecuta una sola tarea a la vez
·  Multitarea: cuando se ejecutan varias tareas en forma simultánea. El S.O. le asigna prioridades de procesamiento, indica al sistema que dé mayor atención a un programa que a otro.

Encontramos diferentes tipos de sistemas operativos. En el ambiente de las computadoras personales podemos  mencionar Windows – Mac-Os – Linux.
Como el S.O. actúa en forma mancomunada con el hardware, no todo sistema operativo sirve para todo hardware.
Equipos como los Apple utilizan el sistema operativo Mac-Os.
En ambientes de máquinas medianas, que permiten los múltiples usuarios, y de servidores de redes, encontramos otros sistemas tales como: Windows Server, Novell, Linux, diferentes versiones de UNIX y OS/400.
En ambientes de máquinas grandes es normal encontrar sistemas operativos específicos para una familia de equipos, tales como OS/390 y el i5/OS de IBM.

Los programas utilitarios, permiten realizar actividades habituales y comunes en un sistema de computación, como:
  • Copiar archivos.
  • Compararlos.
  • Administrar la compilación y catalogación de programas.
  • Realizar copias de seguridad.
  • Llevar estadísticas sobre el uso del sistema
La forma gráfica de presentación permite realizar tareas en forma muy simple, arrastrando íconos, moviendo archivos de una carpeta a otra, ayudando con preguntas para evitar errores.


 SOFTWARE DE APLICACIÓN: incluye programas que se ejecutan para realizar trabajos relacionados con áreas específicas o aplicaciones. Para utilizarlos, es preciso que existe un software de sistema que permita su ejecución. En el campo comercial encontramos sistema de clientes, de facturación, reserva de pasajes de micro o avión. En el campo de la ingeniería aplicaciones para el cálculo de estructuras, para el diseño de edificios o grandes proyectos. En el campo de la medicina los sistemas de diagnósticos por imágenes. Los de uso más generalizado son:
·  Procesador de palabras: se usa para crear, modificar e imprimir todo tipo de documentos
· Planilla de cálculo: se presenta como una tabla compuesta por celdas, que pueden almacenar textos, números, fórmulas y funciones. Su tarea principal es la realización de cálculos en forma automática.
· Gestor de base de datos: maneja gran cantidad de datos en un archivo organizado en registros con varios campos.
·Programas de graficación: permite realizar diseños, creación de gráficos, retocar fotografías, crear presentaciones.
·Gestor de comunicaciones: administra la transmisión de información entre diferentes computadoras a través de la red telefónica

   SOFTWARE DE COMPRESIÓN: permiten comprimir archivos, es decir, reducir el espacio de almacenamiento que ocupan en el disco. Se crearon distintas técnicas según los tipos de datos:
·   Compresión con pérdida de datos: se utiliza para comprimir archivos gráficos, de video o de sonido, donde algunos datos son eliminados cuando se comprimen.
· Compresión sin pérdida de datos: se utiliza para comprimir datos, por ejemplo, los incluidos en un documento, planilla de cálculos, base de datos.


Software Libre y software propietario

El software de base y de aplicación, es desarrollado y construido por medio de la aplicación de conocimientos de sus elaboradores, así los desarrolladores de software son dueños de su propiedad.
Si el dueño del software establece restricciones sobre su utilización y/o modificación se dice que es un soft propietario, por lo tanto no puede copiarlo o modificarlo.
Así mismo se puede obtener un software gratis, pero con restricciones para modificarlo, así es un software propietario que se obtiene en forma gratuita free- ware.
Cuando se habla de software de código abierto nos referimos a software cuyo programa fuente es accesible y modificable por el usuario, sin restricciones. Es software libre.
Como ejemplo de software propietario, no gratuito, podemos mencionar Microsoft Windows, productos de Adobe, juegos. Como ejemplo de software libre tenemos Adobe Reader y Pdf 1999.