Historia Del Software
Primera Era

1950 a 1965     En sus  primeros años el software se contemplaba como un añadido,  para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba  sin ninguna planificación, hasta que   descalabro y costos comenzaron a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico  a menudo salían con éxito. Los problemas a ser resueltos eran principalmente de naturaleza técnica, el énfasis estaba en expresar algoritmos conocidos eficazmente en algún lenguaje de programación.
En estos primeros años lo normal era que el hardware fuera de propósito general. Por otra parte, el software se diseñaba a medida para cada aplicación y tenía una distribución relativamente pequeña.

Segunda Era
1965 a 1972
La evolución de los sistemas de computadora se extiende 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 y las técnicas interactivas abrieron un nuevo mundo de aplicaciones y niveles de clasificación del hardware y software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en mili segundos en lugar de en minutos.        
 Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos.
Tercera Era


1972-1989 

El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos, las redes de área local y global, las comunicaciones digitales de alto ancho de banda y creciente demanda de acceso “instantáneo” a los datos, supusieron una fuerte presión sobre los desarrolladores del software.
Esta etapa se  caracterizó por la llegada y el amplio uso de los microprocesadores.


Cuarta Era

1989 a la fecha el impacto de las  computadoras y del software es colectivo. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzado se han convertido en la norma. Las arquitecturas informáticas están cambiando de entornos centralizados de grandes computadoras a entornos descentralizados cliente/servidor. Las redes de información en todo el mundo proporcionan una infraestructura que iguala a expertos y políticos en pensar sobre una “superautopista de información” y una “conexión del ciberespacio”. De hecho internet se puede observar como un “software” al que pueden acceder usuarios individuales.
Ciclo de Vida del Software 

El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren,  el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.
  
El ciclo de vida básico de un software consta de los siguientes procedimientos:
  • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
  • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
  • Diseño general: requisitos generales de la arquitectura de la aplicación.
  • Diseño en detalle: definición precisa de cada subconjunto de la aplicaci
  • Programación (programación e Implementación) : es  un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
  • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
  • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.


Clasificación  Del Software

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.

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


Software del sistema es responsable de administrar una variedad de componentes de hardware independientes, por lo que pueden trabajar juntos armoniosamente. Su propósito es aligerar el software de aplicación programador de los detalles complejos de la computadora en particular se utiliza, incluyendo tales accesorios como dispositivos de comunicaciones, impresoras, lectores de dispositivo, pantallas y teclados y también para particionar los recursos del equipo como el tiempo de procesador y memoria en forma segura y estable.