HISTORIA
Y EVOLUCIÓN DEL SOFTWARE
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 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 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 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.