Software es un conjunto de programas, instrucciones y reglas informáticas que permiten ejecutar distintas tareas en una computadora. Es el equipamiento lógico e intangible de un computador. En otras palabras, el concepto de software abarca a todas las aplicaciones informáticas, como los procesadores de textos, las planillas de cálculo y los editores de imágenes. Es desarrollado mediante distintos lenguajes de programación, que permiten controlar el comportamiento de una máquina. Estos lenguajes consisten en un conjunto de símbolos y reglas sintácticas y semánticas, que definen el significado de sus elementos y expresiones. Un lenguaje de programación permite a los programadores del software especificar, en forma precisa, sobre qué datos debe operar una computadora.
El término “evolución” del software se utiliza desde los sesenta para denominar la dinámica de crecimiento del software. Una definición atribuida a Lehman y Ramil dice que la evolución del software son todas las actividades de programación que se orientan a generar una nueva versión de un software a partir de una versión anterior que este operativa.
Para dar paso a la evolución de software es necesario dividirlas en cuatro eras que son las siguientes:
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba.
La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina.
La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra.
La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados.
Ned Chapin (1999) lo definió como “la aplicación de las actividades y procesos de mantenimiento del software que generan una nueva versión operativa de un software con una funcionalidad de usuario o propiedades cambiadas a partir de una versión anterior junto con los procesos y actividades de garantía de calidad y con la gestión de esos procesos”. De esta definición se desprende que la evolución cubre el ajuste a funcionalidades adicionales.
La importancia del software radica también en que permite una comunicación entre el usuario y la máquina, e incluso una interacción entre ambos. Un ejemplo muy sencillo seria, al pulsar un botón del teclado, se activa automáticamente una serie de órdenes, que permiten identificar que botón se ha pulsado, traducirlo a lenguaje de máquina, mostrarlo en pantalla para el usuario y almacenarlo. Así, el software que está instalado en el ordenador se ha ocupado de todo eso ante un simple gesto del usuario. Esta es precisamente otra de sus grandes funciones, facilitar las tareas a los usuarios.
Gracias al software podemos ejecutar tareas que hace décadas hubiesen llevado años de trabajo, y ello ha supuesto sin lugar a dudas una revolución mundial en la sociedad moderna. Está tan presente en la vida cotidiana, que muchas veces pasa desapercibido que no sólo se tiene programas y aplicaciones en los ordenadores, sino que la mayor parte de los electrodomésticos, coches, mandos llevan su propio software incorporado.
Es el software básico o sistema operativo. Es un conjunto de programas cuyo objeto es facilitar el uso del computador y conseguir que se use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un programa). Administra y asigna los recursos del sistema (hard-ware), ejemplo windows xp, edition, vista, ms-dos, lunix, unix, mac, e incluido en este se encuentran los Programas de utilidad: (se le podrían llamar también software de mantenimiento): desfragementador de discos, liberador de espacio etc.
Son los programas que controlan y optimización la operación de la máquina, establecen una relación básica y fundamental entre el usuario y el computador, hacen que el usuario pueda usar en forma cómoda y amigable complejos sistemas hardware, realizan funciones que para el usuario serían engorrosas o incluso imposibles, y actúan como intermediario entre el usuario y el hardware, ejemplo cuando nos vamos a inicio\todos los programas. y todos los que aparezcan ahí, instalados así se les llaman "software de aplicación".
En la actualidad, el problema de la comprensión del lenguaje natural por las máquinas dista mucho de estar resuelto, pero, como en el caso del procesamiento de voz, hay aproximaciones de utilidad práctica. La primera, la menos sofisticada, que no puede considerarse inteligencia artificial, consiste en hacer que el programa dirija el dialogo, forzando al usuario a responder le dentro de unos marcos muy rígidos, ya sea por medio de selecciones en menú, o mediante preguntas escogidas que sólo puedan responderse con SI o NO. Evidentemente, tendremos un dialogo en lenguaje natural, pero el usuario no ha llegado a escribir una sola frase completa.
Es la última versión de Microsoft Windows, (anteriormente conocido con nombre código Blackcomb, y luego Vienna), un sistema operativo producido por Microsoft Corporation para uso en PCs, incluyendo equipos de escritorio en hogares y oficinas, Notebooks, tablet PCs, netbooks y equipos media center. A diferencia de su predecesor, Windows 7 es una actualización incremental del núcleo NT 6.0, esto con la meta de mantener cierto grado de compatibilidad con aplicaciones y hardware en los que su antecesor Windows Vista ya era compatible. Las metas de desarrollo para Windows 7 fueron el mejorar su interfaz para hacerla más amena al usuario, con nuevas características que permiten hacer tareas de una manera más fácil y rápida, al mismo tiempo en que se realizaron esfuerzos para lograr un sistema más ligero, estable y rápido. Diversas presentaciones dadas por la compañía en el 2008 se enfocaron en demostrar capacidades táctiles multi-touch, una interfaz rediseñada junto con una nueva barra de tareas y un sistema de redes domésticas denominado Grupo en el Hogar, además de mejoras en el rendimiento.
Al-Jazari, ingeniero musulmán, historiadores lo acreditan con el primer ejemplo de programación a inicios del siglo 13. Entre las decenas de máquinas diseñadas por Al-Jazari, se construyeron varias cuyas acciones podrían alterarse o modificarse cambiando sus instrucciones.
Ada Lovelace, británica, en 1843 escribio un programa rudimentario para la Máquina Analítica, diseñada por Charles Babbage en 1827, lastimosamente la máquina nunca llegó a funcionar.
Tom Kilburn, ingeniero británico y co-inventor de la memoria de computadoras, trabajo en el diseñó y construcción de la primera computadora que contenía un software almacenado, conocida como Maquina Experimental a Pequeña Escala.
David Caminer, fue apodado el primer analista corporativo de sistemas electrónicos, por su trabajo en Lyon en 1947. Caminer fue puesto a cargo del desarrollo de aplicaciones de software y fue posiblemente la primera computadora analítica de sistemas, y los primeros en expresar procesos de negocio como los sistemas formales que puedan ser automatizados y gestionados.
El Software se desarrolla o se construye.
El Software no se desgasta.
El Software se puede actualizar a medida que existan nuevas versiones.
El software es inmune a los males ambientales que desgasten el hardware.