Historia del Software

Anuncio
HISTORIA DEL SOFTWARE
SEPTIEMBRE 2003.
INTRODUCCIÓN
Durante nuestra carrera como estudiantes hemos sido testigos de los grandes y sorprendentes avances
que la tecnología ha desarrollado en los últimos años. El estudiar la especialidad de Licenciatura en
Informática nos ha mantenido mucho más cerca de este desarrollo.
Estos avances han sido muy rápidos en la realidad, pero no podemos hablar de que nacen de la noche a
la mañana, cada uno de ellos refleja una investigación de mucho tiempo. Estas nuevas tecnologías nos
demuestran con hechos y resultados lo importante que son para en la actualidad; a su vez se van
convirtiendo en un estándar para poder competir en el mundo real.
Un factor que ha sido relevante en este desarrollo de tecnologías ha sido el Software, ya que ha facilitado y
agilizado varios procesos que ya se manejaban con anterioridad. Además que se ha convertido en una
característica primordial que deben tener las Organizaciones para poder convertirse en una de las mejores a
nivel mundial.
Este trabajo nos presenta como empezó, desarrolló y que rumbos toma el Software actualmente.
PRIMERA ERA
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. Desde
entonces el campo se ha desarrollado tremendamente. La programación de computadoras era un arte de andar
por casa para el que 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
un 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.
A lo largo de los primeros años aprendimos mucho sobre la implementación de sistemas informáticos, pero
relativamente poco sobre la ingeniería de las computadoras. Sin embargo, en honor de la verdad, debemos
reconocer que durante esa era se desarrollaron muchos sistemas informáticos excepcionales. Algunos de ellos
todavía se siguen utilizando hoy y, por sus características, siguen siendo admirados con toda justicia.
SEGUNDA ERA
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. Las técnicas interactivas abrieron un nuevo mundo de
1
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.
La segunda era se caracterizó también por el establecimiento del 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. 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 as 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 setenta 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
La cuarta era de la evolución de sistemas informáticos se aleja de las computadoras individuales y da los
programas de computadoras, dirigiéndose al impacto colectivo 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, 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
2
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.
Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de
los sistemas basados en computadora, y estos problemas continúan aumentado.
APORTACIONES AL CAMPO
Durante el desarrollo del tema, nos hemos percatado del problema que existió en algún momento respecto a
que no se llevaba una planificación para un buen desarrollo del software. Esto trajo consecuencias que
repercutieron en las Organizaciones.
Muchas de estas consecuencias originaron pérdidas millonarias en diferentes Empresas como el caso de una
Aerolínea Internacional de los Estados Unidos de América, que tuvo el problema de que al momento de que
un pasajero pretendía hacer su reservación de vuelo, el Sistema de Información mostraba que los asientos se
encontraban ocupados, mientras que físicamente el vuelo contaba con demasiados asientos libres. Esto origino
una pérdida de $50 millones de dólares.
A la vez se presentaron casos en los cuales las pérdidas eran iguales o mayores materialmente hablando. Las
transacciones financieras de aquél entonces se empezaron a llevar por medio de Software Especializado. Pero
también tuvo errores, ya que al enviar facturas de pago, su total de pago presentaba $0.00, lo cual originó
bastantes pérdidas.
Pero no sólo existieron pérdidas materiales en los malos desarrollos de Software de aquellos días. Una
computadora que se usaba para el servicio militar de los Estados Unidos de América, reportó una alarma
acerca de la Unión Soviética de Repúblicas Socialistas había iniciado un ataque de proyectiles nucleares en
contra de ese país. Esto origino una gran movilización para contrarrestar el ataque, se alistaron a los
bombarderos atómicos norteamericanos, pero al día siguiente a través de un periódico se daba la noticia que
todo había sido un error en el Software de la computadora.
Otra de las consecuencias en donde si hubo pérdidas humanas, fue en un caso en Inglaterra, en donde se
enjuiciaba a una mujer de 54 años de edad por asesinar a su hija. Esto fue debido a un mensaje de un sistema
informatizado hizo de la compañía de Seguro Social, informaba a la mujer que ella estaba gravemente
enferma, se le decía que padecía una forma incurable de sífilis, además de que había infectado a sus dos hijos.
En pánico, ella estranguló a su hija de 15 años e intento matar a su hijo de 13, el muchacho escapó y consiguió
ayuda para después impedir que su madre se suicidará. Finalmente el juez culpó el error de la computadora y
no consideró a la mujer responsable de sus acciones.
Como nos podemos dar cuenta estas consecuencias fueron de gran gravedad. En los primeros dos casos se
atacó hacia los recursos financieros de grandes empresas a nivel internacional. En los siguientes casos aparte
de afectar materialmente a la Sociedad, se pierde una vida humana por un error en el Software acerca de un
padecimiento. Es así como se observa los diferentes tipos de consecuencias que se originaban por un mal
3
desarrollo de Software.
Con este tipo de casos nos hemos percatado de la importancia que tiene una planeación acerca del desarrollo
del Software. En aquel entonces el programador no se adentraba hacia las repercusiones que pudiera tener el
Software que estaba creando, y ante la falta de documentación para la enseñanza de la creación de Software,
los programadores aprendían solamente practicando.
Actualmente, nosotros como desarrolladores de Software, al momento de diseñarlo debemos de darnos cuenta
de varias cosas para no tener ese tipo de errores que existieron con anterioridad. Además de otras cosas
creemos que entre lo más importante que debemos saber es:
• ¿Hacia quién va dirigido el SW?
• ¿Quienes serán los usuarios?
• ¿Qué tipo de información les será proporcionada?
• La facilidad de acceso.
esto, entre muchas otras cosas más. Pero ante todo siempre debemos adoptar la postura de todos los tipos de
usuarios que vayan a trabajar con el Software, ya que así podremos observar si los resultados que se obtienen
son los que se requieren, es decir todo en base a una buena planeación.
Sin embargo, no es del todo satisfactorio dejar las cosas simplemente en las etapas de planeación. Después de
que los programas estén terminados deben recibir mantenimiento, y los esfuerzos de mantenimiento
normalmente sobrepasan el esfuerzo gastado en el diseño y programación original.
Parte importante de este aspecto es la documentación. Se deben documentar el Software y los procedimientos
para que estén codificados en un formato que pueda ser fácilmente accesado. La documentación permite que
los usuarios, programadores y analistas observen el sistema, Software y procedimientos sin tener que
interactuar con él.
Después de ver todos los avances podemos observar que no sólo se cambia una manera de trabajar, sino que
se cambia la forma de conceptualizar la vida, ¿Quién vive ya sin la ayuda de una computadora que agilice
procesos?, y en caso drástico podemos ver que se cambian las costumbres y cultura de la Sociedad Actual.
CONCLUSIONES
A manera de conclusión, queremos finalizar con una semblanza ágil y rápida que nos permitirá observar los
aspectos más relevantes que a nuestro juicio han marcado con hechos la Evolución del Software.
ERA
AÑOS
1ª
1950 − 1965
2ª
1965 − 1972
CARACTERÍSTICAS
• 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.
• 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.
4
• Se buscan procedimientos para el desarrollo del Software.
3ª
4ª
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.
Creemos de suma relevancia el mencionar algunas de los lenguajes de programación que fueron
utilizados en sus respectivas eras. Esto nos ayudará a comprender mejor el objetivo que se perseguía en
cada una de ellas.
ERA
LENGUAJES
• Fortran
1ª
• Basic
• Logo
• Cobol
• Pascal
2ª
• Prolog
• Mumps
• Lisp
CARACTERÍSTICAS
• 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.
• 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.
3ª
• C, C++
• Modula−2
• Desarrollado en los ochentas.
• Se utiliza en aplicaciones comerciales.
• C++, se utiliza para la tecnología orientada a objetos.
5
• dBase
• Versión mejorada de Pascal.
• Desarrollada en 1979.
• Lenguaje estándar para aplicaciones comerciales.
• Ramas colaterales: Clipper, FoxBase.
4ª
• 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.
En estos días se habla de una nueva plataforma desarrollada por Microsoft: La plataforma .NET, que
permitirá a los desarrolladores crear aplicaciones extensas e incluso sistemas de componentes y
servicios con gran capacidad para operar entre sí.
Este tipo de aplicaciones se pueden limitar a una organización, pero ésa no es la idea general, ya que los
muchos analistas son de la opinión de que hay gran necesidad de aplicaciones que puedan existir en un
ambiente distribuido basado en Internet.
Pero creemos que como normalmente sucede sobre todo con el Software de Sistemas, algunas áreas no
están terminadas, y aunque la nueva plataforma ofrezca características modernas y sencillas, utilizarlas
dependerá si Microsoft logra que los principales negocios acepten cambiar a esta nueva forma de crear
soluciones.
A continuación se presenta una lista de algunas personas que hicieron contribuciones significativas en la
creación y crecimiento de la industria de productos de software
• 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.
La mayoría de estas personas aquí nombradas, trabajaron sobre algún aspecto del Software con el que
aún se trabaja, pero en otros casos, este tipo de avances dieron pie a nuevas investigaciones que han
contribuido al desarrollo del mismo, es decir, que han servido como base para descubrir nuevas
fisonomías del Software con el que actualmente se trabaja.
6
BIBLIOGRAFIA
• Ingeniería de Software
Roger S. Pressman
McGraw−Hill.
• Software Engineering Principles and Practice
Hans van Vliet
Jhon Wiley and Sons.
• Software Engineering for Information Systems
Donald C. McDermid
Blackwell Scientific Publications.
• 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.
Volumen 12, N° 2
México, Febrero de 2001.
7
Descargar