Software
Definición de Software
Algunos autores prefieren ampliar la definición de software e incluir también en la definición todo lo que es producido en el desarrollo del mismo.
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). Aquí se incluye información relacionada al proyecto, información sobre la tecnología de software, conocimiento acerca de sistemas similares y la información detallada relacionada a la identificación y solución de problemas técnicos.
- La información de la aplicación.
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:
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 (Demoware)