domingo, 5 de febrero de 2012

HISTORIA DEL DESARROLLO DE SOFTWARE

      EL PRIMER PROGRAMA DE LA HISTORIA - 1842

Ada Byron, alias Lady Lovelace. Ada fue, ni más ni menos, que la primer programadora de la historia, allá por el siglo 19. Ada, se vería obligada a realizar una serie de algoritmos que la ayudarían a obtener un método ?automático? para resolver números de Bernoulli. Estas notas, que realizó explicando el procedimiento, son consideradas como el primer programa computacional de la historia. De hecho se ha probado que si se transcribe la lógica a un lenguaje de programación moderno este es perfectamente funcional. El primer programa de la historia fue Open Source.


PRIMERA ERA


Existían pocos métodos sistemáticos.  El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costos 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 una 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ña a medida para cada aplicación y tenía una distribución relativamente pequeña. El software como producto estaba en su infancia.  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á allí cuando se encontrara algún error. Debido a 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.

SEGUNDA ERA


La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina.  Las técnicas interactivas abrieron  un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del 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 milisegundos 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.

Los programas se distribuían para computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios.  Los patronos de la industria, del gobierno y de la universidad se aprestaban a “desarrollar el mejor paquete de software” y ganar así mucho dinero.

Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las bibliotecas de software de computadora.  Las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencias fuente.  Los productos de software comprados al exterior incorporaban cientos de  miles de nuevas sentencias.  Una nube negra apareció en el horizonte.  Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido.  Esta actividades se llamaron colectivamente mantenimiento del software.  El esfuerzo gastado en el mantenimiento del software comenzó a absorber recursos en una medida alarmante.

Aún peor, la naturaleza personalizada de muchos programas los hacía virtualmente imposibles de mantener.  Había comenzado una crisis del “software”

TERCERA ERA


La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años 70 y continuó más allá de una década.  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 de área global, las comunicaciones digitales de alto ancho de banda y creciente demanda de acceso “instantáneo” a los datos, supusieron una fuente presión sobre los desarrolladores del software.  Aún más, los sistemas y el software que lo permitían continuaron residiendo dentro de la industria y de la academia.  El uso personal era extraño.

La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores.  El microprocesador ha producido un extenso grupo de productos inteligentes, desde productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnóstico de suero sanguíneo, pero ninguno ha sido más importante que la computadora personal.  En menos de una década, las computadoras llegarán a ser fácilmente accesibles al público.

CUARTA ERA

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. 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.

La industria del software ya es la cuna de la economía del mundo.  Las decisiones tomadas por gigantes de la industria tales como Microsoft arriesgan billones de dólares. A medida que la cuarta generación progresa, han comenzado a surgir nuevas tecnologías.  Las tecnologías orientadas a objetos  están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.  Aunque las predicciones de las computadoras de “quinta generación”” continúan eludiéndonos, “las técnicas de cuarta generación” para el desarrollo del software están cambiando en forma en que la comunidad del software construye programas informáticos.  Los sistemas expertos y el software de inteligencia artificial han salido del laboratorio para entrar en aplicaciones prácticas de una gran variedad de problemas del mundo real.  El software de redes neuronales artificiales junto con la aplicación de lógica difusa ha abierto posibilidades excitantes para el reconocimiento de patrones y habilidades de procesamiento de información de carácter humano.  La programación de realidad virtual y los sistemas multimedia ofrecen formas radicalmente diferentes de comunicar información al usuario final.  “Los algoritmos genéricos” ofrecen el potencial para el software que reside dentro de las computadoras biológicas masivamente en paralelo.


ERA
AÑOS
CARACTERÍSTICAS
1950 – 1965
  • Se trabajaba con la idea de “Codificar y Corregir”.
  • No existía un planteamiento previo.
  • No existía documentación de ningún tipo.
  • Existencia de pocos métodos formales y pocos creyentes en ellos.
  • Desarrollo a base de prueba y error.
1965 – 1972
  • Se busca simplificar código.
  • Aparición de Multiprogramación y Sistemas Multiusuarios.
  • Sistemas de Tiempo Real apoyan la toma de decisiones.
  • Aparición de Software como producto. (Casas de Software).
  • INICIO DE LA CRISIS DEL SOFTWARE.
  • Se buscan procedimientos para el desarrollo del Software.
1972 – 1989
  • Nuevo Concepto: Sistemas Distribuidos.
  • Complejidad en los Sistemas de Información.
  • Aparecen: Redes de área local y global, y Comunicadores Digitales.
  • Amplio Uso de Microprocesadores.
1989 - ¿?
  • Impacto Colectivo de Software.
  • Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.
  • Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.
  • La información como valor preponderante dentro de las Organizaciones.


ERA
LENGUAJES
CARACTERÍSTICAS
  • Fortran





  • Basic


  • Logo


  • Cobol
  • Fue el primer y principal lenguaje Científico.
  • Diseñado por IBM.
  • Utilizado también para aplicaciones comerciales.


  • Desarrollado como lenguaje de tiempo compartido.


  • Traza elementos gráficos estableciendo la geometría de lápiz.


  • Ampliamente usado en programación en minicomputadores.

  • Pascal




  • Prolog


  • Mumps



  • Lisp
  • Lenguaje Académico.
  • Sus características son copiadas por otros lenguajes.
  • Éxito comercial a través de Borland.


  • Desarrollado en Francia, 1973.
  • Aplicaciones en Inteligencia Artificial (IA).


  • Sistema de Multiprogramación.
  • Incluye su propia base de datos.
  • Utilizado en aplicaciones médicas.


  • Sintaxis muy diferente de los demás lenguajes.
  • Programa aplicaciones en IA.

  • C, C++




  • Modula-2


  • dBase
  • Desarrollado en los ochentas.
  • Se utiliza en aplicaciones comerciales.
  • C++, se utiliza para la tecnología orientada a objetos.


  • Versión mejorada de Pascal.
  • Desarrollada en 1979.


  • Lenguaje estándar para aplicaciones comerciales.
  • Ramas colaterales: Clipper, FoxBase.
  • Visual C++



  • Visual Basic
  • Desarrollado por Microsoft.
  • Principalmente orientado a la tecnología de objetos.
  • Se utiliza para aplicaciones comerciales.

  • Principalmente para aplicaciones comerciales.
  • Versión cotizada, ya que permite interactuar con tablas de manejadores de bases de datos y lenguaje SQL.




  • Charles Bachman.  Inventó la tecnología del banco de datos en los inicios de los sesentas.        
        John Backus. FORTRAN desarrollado para IBM (1954)
  • Bob Bemer.      Uno de los diseñadores de COBOL y el ASCII normal para IBM (años sesenta); inventor de la sucesión del Escape, el mecanismo universal para toda la computadora.
  • Larry Constantine.  Inventa los datos que fluyen en los diagramas, presentan primero en papel, los conceptos de un plan estructurado en 1968.
  • Peter Cunningham. Funda una de las primeras  empresas de investigación de mercado para enfocar el software y comienza a comercializar los productos del software en 1974.
  • Tom DeMarco. El pionero en utilizar una metodología de caso, el autor, y consultor en los años setenta.
  • Wilfred J. Dixon. Empezó distribuyendo el software estadístico en 1962.
  • Frank Dodge. Co - fundó McCormack & el Regate qué vendió el primer software de contabilidad en 1969.
  • Larry Ellison.  Dejó camino abierto para los DBMS.
  • Dave Ferguson. Logró vender el primer producto de software con éxito contra un programa de IBM.
  • Ken Orr. Crea la metodología de caso desarrollada en los años setenta.


Ingeniería de Software
Roger S. Pressman
McGraw-Hill.
Diccionario de Computación
Freedman Alan
McGraw-Hill.
Análisis y Diseño de Sistemas
Kendall & Kendall
Pearson Educación
PC Magazine En Español.
http://fresqui.com/tecnologia/software/el-primer-programa-de-la-historia-1842/-1914