la historia del software

  • Tarjetas perforadas

    Tarjetas perforadas
    Cuando todo comenzó, la información se almacenaba en papel, y las grandes computadoras se programaban cada vez que tenía que utilizarlas. Este panorama cambió cuando aparecieron las primeras tarjetas perforadas para computadora.
    Las computadoras funcionaban por medio de tarjetas perforadas con las cuales se ingresaban datos y programas (instrucciones).
  • Period: to

    la primera generación

    Durante los primeros años de desarrollo de las computadoras, el hardware sufrió continuos cambios, mientras que el software se contemplaba simplemente como un agregado.
  • Desarrollo a base de prueba y error.

    Desarrollo a base de prueba y error.
    Durante este período, en la mayoría de los sistemas se utilizaba una orientación por lotes, siendo algunas excepciones notables varios sistemas interactivos.
  • No existía un planteamiento previo.

    No existía un planteamiento previo.
    La mayor parte del hardware se dedicaba a la ejecución de un único programa que, a su vez, se dedicaba a una aplicación específica. Lo normal era que el hardware fuera de propósito general y, por otra parte, el software se diseñaba a medida para cada aplicación y tenía una distribución relativamente pequeña.
  • Primeros Sistemas Operativos

    Primeros Sistemas Operativos
    Los primeros sistemas operativos fueron desarrollados por cada usuario para el uso de su propia computadora central. El primer Sistema Operativo de la historia fue creado en 1956 para un ordenador IBM 704, y básicamente su único funcionamiento era comenzando la ejecución de un programa cuando el anterior terminaba.
  • Se trabajaba con la idea de “Codificar y Corregir”.

    Se trabajaba con la idea de “Codificar y Corregir”.
    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; debido a que la movilidad en el trabajo era baja, los ejecutivos estaban seguros de que esa persona estaría allí cuando se encontrara algún error.
  • fortran

    fortran
    Se desarrolla Fortran, el primer lenguaje de alto nivel, fue presentado como una alternativa al ensamblador del IBM 704. La potencia del lenguaje Fortran se centró en el cálculo numérico, limitando en los usos de gestión, manejo de archivos, tratamiento de cadenas de caracteres. y edición de informes. Usaba tarjetas perforadas de 80 caracteres de ancho, y su sistema de procesamiento de instrucciones era secuencial.
  • COBOL

    COBOL
    El lenguaje COBOL fue creado con el objetivo de ser un lenguaje de programación universal que pudiera ser usado en cualquier computadora y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.
  • No existía documentación de ningún tipo.

    No existía documentación de ningún tipo.
    En este entorno personalizado del software, el diseño era un proceso implícito, realizado en la mente de alguien, y la documentación normalmente no existía.
  • Period: to

    Crisis del software

    El término crisis del software se utilizó desde finales de 1960 hasta mediados de 1980 para describir los frecuentes problemas que aparecieron durante el proceso de desarrollo de nuevo software.
  • Existencia de pocos métodos formales y pocos creyentes en ellos.

    Existencia de pocos métodos formales y pocos creyentes en ellos.
    A lo largo de los primeros años se aprendió mucho sobre la implementación de sistemas informáticos, pero relativamente poco sobre la ingeniería de software.
  • Aparición de Multiprogramación y Sistemas Multiusuarios.

    Aparición de Multiprogramación y Sistemas Multiusuarios.
    La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre-máquina.
  • Se busca simplificar código.

    Se busca simplificar código.
    Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de complejidad del hardware y del software.
  • Sistemas de Tiempo Real apoyan la toma de decisiones.

    Sistemas de Tiempo Real apoyan la toma de decisiones.
    Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en vez de en minutos.
  • Crisis de Software e Ingeniería de Software

    Crisis de Software e Ingeniería de Software
    A medida que avanzaba la programación, apareció el "mantenimiento de software", experimentando problemas al ser un proceso relativamente nuevo. Esto salió a la luz en una conferencia elaborada por la OTAN donde Friedrich Bauer habló por primera vez sobre el tema, exponiendo los errores en planificación, costos, productividad y calidad del software, y se le atribuyo el término de la "crisis del software" . Para dar una solución a estos problemas se creo la Ingeniería de Software.
  • Aparición de Software como producto. (Casas de Software).

    Aparición de Software como producto. (Casas de Software).
    Esta era se caracterizó también por el establecimiento del software como producto y la llegada de las "casas de software", donde el software ya se desarrollaba para tener una amplia distribución en un mercado multidisciplinario: los programas se distribuían para computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios; la industria, el gobierno y la universidad se aprestaban a "desarrollar el mejor paquete de software" y ganar así mucho dinero.
  • Primera Red de Computadoras

    Primera Red de Computadoras
    Se construyó la primera red de computadoras de la historia, denominada ARPANET, estaba compuesta por cuatro nodos situados en UCLA (Universidad de California en los Ángeles), SRI (Stanford Research Institute), UCBS (Universidad de California de Santa Bárbara, Los Ángeles) y la Universidad de UTA. En 1970 comienza a utilizar para sus comunicaciones un protocolo Host-to-post
  • 1969

    1969
    El sistema operativo UNIX fue creado por miembros de los laboratorios Bell de AT&T (como Ken Thompson, Dennis Ritchie o Rudd Canaday, entre otros). El propósito era crear un buen sistema operativo, multitarea y multiusuario, rápido y seguro.
  • Modelo Cascada

    Modelo Cascada
    Winston W. Royce fue un pionero en el campo de ingeniería de software, conocido por su papel en 1970, año en el cual el modelo en cascada de ingeniería de software se extrajo por error.
    El papel de Royce de 1970 es generalmente considerado como el papel en el cual se definen las etapas del modelo “cascada” del proceso de software.
  • Programación estructurada

    Programación estructurada
    El teorema del programa estructurado señala que la combinación de las tres estructuras básicas, secuencia, selección e iteración, son suficientes para expresar cualquier función computable. Estos temas fueron abordados durante la década de 1960 (concretamente en 1969) y principios de los años 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries.
  • Se buscan procedimientos para el desarrollo del Software.

    Se buscan procedimientos para el desarrollo del Software.
    Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las bibliotecas de software, las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencias fuente y los productos de software comprados al exterior incorporaban cientos de miles de nuevas sentencias.
  • Mantenimiento del Software

    Mantenimiento del Software
    Todos esos programas (todas esas sentencias) tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos de hardware que se hubieran adquirido; estas actividades se llamaron colectivamente mantenimiento del software.
  • ARPANET

    ARPANET
    El procesamiento distribuido (múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra) incrementó notablemente la complejidad de los sistemas informáticos.
  • Nacen los paradigmas de programación

    Nacen los paradigmas de programación
    David Parnas introduce los conceptos clave de modularidad y camuflaje de información, dando paso al nacimiento de los paradigmas de programación, asimismo, dichos aportes se convirtieron en conceptos claves para la programación orientada a objetos.
  • Idioma C

    Idioma C
    El lenguaje de programación C fue desarrollado por Dennis M. Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolución del anterior lenguaje B. Siendo un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix.
    Fue apreciado por la eficiencia del código que produce y se convirtió posteriormente en el lenguaje de programación más popular para crear software de sistemas.
  • Period: to

    La tercera Generación

  • CTTS - Sistema de Tiempo Compartido

    CTTS - Sistema de Tiempo Compartido
    CTSS (Sistema de Tiempo Compartido Compatible) fue uno de los primeros sistemas operativos de tiempo compartido, fue desarrollado en el Centro de Computación del MIT. Se presentó en 1961, y se utilizó en el MIT hasta 1973.
  • Complejidad en los Sistemas de Información.

    Complejidad en los Sistemas de Información.
    El procesamiento distribuido (múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra) incrementó notablemente la complejidad de los sistemas informáticos.
  • Primer Microprocesador para Uso General

    Primer Microprocesador para Uso General
    Intel 8080 fue el primer microprocesador realmente diseñado para uso general, desarrollado por Intel, era de 8 bits, contenía 4500 transistores y podía ejecutar 200 000 instrucciones por segundo trabajando a alrededor de 2 MHz.
  • Redes de área local, global y Comunicadores Digitales.

    Redes de área local, global y Comunicadores Digitales.
    Las redes de área local y de área global, las comunicaciones digitales de gran ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software.
  • Sistemas Distribuidos

    Sistemas Distribuidos
    Los sistemas distribuidos comenzaron a desarrollarse al ritmo del crecimiento de las redes locales a principios de los 70. Un sistema distribuido se define como una colección de computadoras separadas esencialmente y conectadas entre sí por una red de comunicaciones.
  • Aparecen: Redes de área local y global, y Comunicadores Digitales.

    Aparecen: Redes de área local y global, y Comunicadores Digitales.
    Las redes de área local y de área global, las comunicaciones digitales de gran ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software.
  • Smalltalk - Primer Lenguaje Orientado a Objetos Puro

    Smalltalk - Primer Lenguaje Orientado a Objetos Puro
    Se publica Smalltalk, el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a Objetos, es decir, únicamente utilizaba clases y objetos. Comenzó a desarrollarse desde 1969 por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los años setenta en el Palo Alto Research Institute de Xerox con el objetivo de crear un sistema informático orientado a la educación, pero no fue hasta 1980 que estuvo públicamente disponible.
  • Nuevos diagramas de programación

    Nuevos diagramas de programación
    Surgen nuevos diagramas de distribución y de producción de programación.
    Estos representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.
  • Surge la Ingeniería de la Información

    Surge la Ingeniería de la Información
    Surge la Ingeniería de la información (IE) o la metodología de ingeniería de la información (IEM), la cual es una ingeniería de software con enfoque para el diseño y desarrollo de sistemas de información.
  • Amplio uso de Microprocesadores.

    Amplio uso de Microprocesadores.
    Se produce la llegada y el amplio uso de los microprocesadores y las computadoras personales. El microprocesador es una parte integral de un amplio espectro de productos "inteligentes" que incluyen automóviles, hornos microondas, robots industriales y equipos de diagnóstico médico.
  • Java

    Java
    Surge Java, un lenguaje de programación y plataforma informática comercializada por Sun Microsystems. Su filosofía es aprovechar el software existente y facilitar la adaptación del mismo a otros usos diferentes a los originales sin necesidad de modificar el código ya existente.
  • Surge El Ciclo De Vida Del Software

    Surge El Ciclo De Vida Del Software
    El ciclo de vida del desarrollo Software (SDLC en sus siglas inglesas), es una secuencia estructurada y bien definida de las etapas en Ingeniería de software para desarrollar el producto software deseado.
  • Period: to

    La cuarta Generación

  • Nace El Desarrollo En Espiral

    Nace El Desarrollo En Espiral
    El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez por Barry Boehm en 1986,​ utilizado generalmente en la ingeniería de software. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades.
  • Impacto Colectivo de Software.

    Impacto Colectivo de Software.
    La cuarta era del software se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software.
  • World Wide Web

    World Wide Web
    La World Wide Web se desarrolló entre marzo y diciembre de 1989 por el inglés Tim Berners-Lee con la ayuda del belga Robert Cailliau mientras trabajaban en el CERN en Ginebra, Suiza, y se publicó como una propuesta formal en 1991.
  • 1989

    1989
    Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.
  • Avance de la IA

    Avance de la IA
    Aparecieron los Agentes inteligentes (avance de la IA), entidades capaces de percibir su entorno, procesar las percepciones y responder a estas de una manera racional y correcta, tendiendo a maximizar un resultado esperado.
  • Cliente / Servidor

    Cambia la arquitectura informática de entornos centralizado de grandes computadores a entornos descentralizados cliente / servidor.
  • Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.

    Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.
    Por fin, los sistemas expertos y el software de inteligencia artificial se han trasladado del laboratorio a las aplicaciones prácticas, para un amplio rango de problemas del mundo real. El software de redes neuronales artificiales ha abierto excitantes posibilidades para el reconocimiento de formas y habilidades de procesamiento de información al estilo de como lo hacen los humanos.
  • Primeros Navegadores Web

    Primeros Navegadores Web
    Mosaic fue el primer navegador que popularizó el uso de la web. Netscape apareció en 1994 y hasta 1997 fue el navegador más popular. Microsoft presentó Internet Explorer en agosto de 1995. Opera comenzó en 1994 como proyecto de investigación de Telenor, una compañía telefónica Noruega.
  • Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.

    Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.
    La cuarta era del software está enfocada a las tecnologías orientadas a los objetos y están desplazando rápidamente a enfoques de desarrollo de software más convencionales en muchas áreas de aplicación. Las técnicas para el desarrollo de software ya están cambiando la forma en que algunos segmentos de la comunidad informática construyen los programas computacionales.
  • Metodología SCRUM

    Metodología SCRUM
    Se formaliza SCRUM, una metodología de gestión y desarrollo ágil de proyectos, orientada a la obtención de resultados, a pesar de que el entorno sea cambiante y/o los requisitos estén sujetos a cambios o no estén muy bien definidos. Este modelo fue identificado y definido por Ikujiro Nonaka e Hirotaka Takeuchi.
  • Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.

    Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.
    Por fin, los sistemas expertos y el software de inteligencia artificial se han trasladado del laboratorio a las aplicaciones prácticas, para un amplio rango de problemas del mundo real. El software de redes neuronales artificiales ha abierto excitantes posibilidades para el reconocimiento de formas y habilidades de procesamiento de información al estilo de como lo hacen los humanos.
  • Método de desarrollo de sistemas dinámicos

    Método de desarrollo de sistemas dinámicos
    Se desarrolla el Método de Desarrollo de Sistemas dinámicos, un método que proporciona un framework para el desarrollo ágil de software, apoyado por su continua implicación del usuario en un desarrollo iterativo y que sea sensible a los requerimientos cambiantes. Fue desarrollado en el Reino Unido en los años 90 por un consorcio de proveedores y de expertos en la materia del desarrollo de sistemas de información.
  • Period: to

    La actualidad

    Principales características: 1.- Omnipresencia de la web, la reutilización de información y componentes de software.
    2.- Codificar: Transformar mediante las reglas de un código la formulación de un mensaje.
    3.- Hardware: Componente físico de la computadora. Por ejemplo: el monitor, la impresora o el disco rígido.
    4.- Multiprogramación: técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo”.