Software

El software es todo programa o aplicación programado para realizar tareas específicas. El término "software" fue usado por primera vez por John W. Tukey en 1957. La palabra "software" es un contraste de "hardware"; el software se ejecuta dentro del hardware.

El software en sentido amplio

Una definición más amplia de software incluye mucho más que sólo los programas. Esta definición incluye: - La representación del software: programas, detalles del diseño escritos en un lenguaje de descripción de programas, diseño de la arquitectura, especificaciones escritas en lenguaje formal, requerimientos del sistema, etc.

- El conocimiento de la ingeniería del software: Es toda la información relacionada al desarrollo de software (por ejemplo, cómo utilizar un método de diseño específico) o la información relacionada al desarrollo de un software específico (por ejemplo, el esquema de pruebas en un proyecto). - La información de la aplicación.

El "software" como programa

El software, como programa, consiste en un código en un lenguaje máquina específico para un procesador individual. El código es una secuencia de instrucciones ordenadas que cambian el estado del hardware de una computadora.

El software se suele escribir en un lenguaje de programación de alto nivel, que es más sencillo de escribir (pues es más cercano al lenguaje natural humano), pero debe convertirse a lenguaje máquina para ser ejecutado.

El software puede distinguirse en tres categorías: software de sistema, software de programación y aplicación de software. De todas maneras esta distinción es arbitraria y muchas veces un software puede caer un varias categorías.

- Software de sistema: ayuda a funcionar al hardware y a la computadora. Incluye el sistema operativo, controladores de dispositivos, herramientas de diagnóstico, servidores, sistema de ventanas, utilidades y más. Su propósito es evitar lo más posible los detalles complejos de la computación, especialmente la memoria y el hardware.

- Software de programación: provee herramientas de asistencia al programador. Incluye editores de texto, compiladores, intérprete de instrucciones, enlazadores, debuggers, etc.

- Software de aplicación: permite a los usuarios finales hacer determinadas tareas. Algunos software de aplicación son los navegadores, editores de texto, editores gráficos, antivirus, mensajeros, etc.

El software puede clasificarse según su licencia y/o forma de distribución: Formas o licencias de distribución de software Adware • Beerware • Careware • Crippleware • Código abierto • Donationware • Donateware • Freeware • Greenware • Nagware • Postcardware • Ransomware • Registerware • Shareware • Software de distribución libre • Software libre • Software propietario • Trialware