Software (logico)

Se conoce como software al equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamados hardware.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.


DEFINICION DE SOFTWARE

Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:

Es 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.

Extraído del estándar 729 del IEEE

Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.

El término «software» fue usado por primera vez en este sentido por John W. Tukey 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 (programa) 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. 

 

CLASIFICACION DEL SOFTWARE

Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos:

Software de sistema:

Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:

  • Sistemas operativos: Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.
  • Controladores de dispositivos: Llamado normalmente controlador (en inglés, device driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo.
  • Herramientas de diagnóstico:Es un software que permite monitorear y en algunos casos controlar la funcionalidad del hardware, como: computadoras, servidores y periféricos, según el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador, los discos duros, ruteadores, tarjetas de red, entre muchos dispositivos más. El software permite monitorear temperatura, rendimiento, transferencia de datos, etc.
  • Herramientas de Corrección y Optimización:
  • Servidores: En informática, un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.
  • Utilidades: En informática, una utilidad es una herramienta que realiza:
  • Tareas de mantenimiento
  • Soporte para la construcción y ejecución de programas
  • Las tareas en general
    En donde se incluyen las bibliotecas de sistema, middleware, herramientas de desarrollo, etc.

Software de programación:

Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:

  • Editores de texto: Es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano.
  • Compiladores: Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar
  • Intérpretes: En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
  • Enlazadores: Es un programa que toma los ficheros de código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable o una biblioteca
  • Depuradores: Es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS).
  • Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).

Software de aplicación:

Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:Aplicaciones para Control de sistemas y automatización industrial.

  • Aplicaciones ofimáticas: Es una recopilación de aplicaciones, las cuales son utilizados en oficinas y sirve para diferentes funciones como crear, modificar, organizar, escanear, imprimir, etc. archivos y documentos.
  • Software educativo: Es un software destinado a la enseñanza y el aprendizaje autónomo y que, además, permite el desarrollo de ciertas habilidades cognitivas
  • Software empresarial: Se entiende generalmente cualquier tipo de software que está orientado a ayudar a una empresa a mejorar su productividad o a medirla.
  • Bases de datos: Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.
  • Telecomunicaciones (por ejemplo Internet y toda su estructura lógica):
  • Videojuegos: Es un software creado para el entretenimiento en general y basado en la interacción entre una o varias personas y un aparato electrónico que ejecuta dicho videojuego; este dispositivo electrónico puede ser una computadora, una máquina arcade, una videoconsola, un dispositivo handheld (un teléfono móvil, por ejemplo) los cuales son conocidos como plataformas.
  • Software médico: Se llama a aquellos programas informáticos que son utilizados para fines médicos. Se utilizan muchos dispositivos médicos para vigilar o controlar a los pacientes, en su mayoría controlados por software.
  • Software de Cálculo Numérico y simbólico: El análisis numérico o cálculo numérico es la rama de las matemáticas que se encarga de diseñar algoritmos para, a través de números y reglas matemáticas simples, simular procesos matemáticos más complejos aplicados a procesos del mundo real.
  • Software de Diseño Asistido (CAD): El diseño asistido por computadora, más conocido por sus siglas inglesas CAD (computer-aided design), es el uso de un amplio rango de herramientas computacionales que asisten a ingenieros, arquitectos y a otros profesionales del diseño en sus respectivas actividades.
  • Software de Control Numérico (CAM): La base de datos que se desarrolla durante el CAD es procesada por el CAM, para obtener los datos y las instrucciones necesarias para operar y controlar la maquinaria de producción, el equipo de manejo de material y las pruebas e inspecciones automatizadas para establecer la calidad del producto.