Anda di halaman 1dari 8

EVOLUCION Y GENERACIONES DE SOFTWARE

INTRODUCCIÓN

La industria del software ya tiene casi setenta años y en este período ha realizado

grandes avances, ya que disponemos de lenguajes de programación más sofisticados,

procesos de desarrollo más maduros, y las aplicaciones que se construyen en la actualidad

son más complejas. De hecho, el software forma parte de nuestras vidas, está en

todos los aparatos que manejamos, medios de transporte, sistemas de telecomunicaciones,

equipos médicos, sistemas de administración pública y financieros, en el arte, en el ocio y

en el entretenimiento. En definitiva, como decía Bjarne Stroustrup: “Our civilization runs

on software”.

Ahora bien, hay que tener en cuenta como señala Grady Booch que: “el

desarrollo de software ha sido, es y probablemente será fundamentalmente difícil”. En

efecto, cada vez se construyen sistemas más complejos desde el punto de vista tecnológico.

A lo que hay que añadir también, muchas veces, problemas en el gobierno de las tecnologías

y sistemas informáticos, defectos producidos por primar la puesta en marcha de los

sistemas de forma oportuna -sacrificando su calidad-, y la falta de formación de los

responsables del desarrollo de software.

A continuación, resumiremos la evolución de la Ingeniería del Software desde su

nacimiento hasta la actualidad. El contexto en el que se ha desarrollado el software está

fuertemente ligado a las casi cinco décadas de evolución de los sistemas informáticos. Un

mejor rendimiento del hardware, una reducción del tamaño y un costo más bajo, han dado

lugar a sistemas informáticos más complejos. Hemos pasado de los procesadores con

válvulas de vacío a los dispositivos microelectrónicos que son capaces de procesar 200

millones de instrucciones por segundo y más.


1. Generación Cero 1940
Los sistemas operativos han ido evolucionando durante los últimos 40 años a través
de un número de distintas fases o generaciones que corresponden a décadas. En
1940, las computadoras electrónicas digitales más nuevas no tenían sistema
operativo. Las Máquinas de ese tiempo eran tan primitivas que los programas por lo
regular manejaban un bit a la vez en columnas de switch's mecánicos.
Eventualmente los programas de lenguaje máquina manejaban tarjetas perforadas, y
lenguajes ensamblador fueron desarrollados para agilizar el proceso de
programación. Los usuarios tenían completo acceso al lenguaje de la máquina. Todas
las instrucciones eran codificadas a mano.

2. Primera generación 1950 - 1960


Los primeros ordenadores se programaban directamente en código binario, que
puede representarse mediante secuencias de ceros y unos.
Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de
máquina.
Los laboratorios de investigación de la General Motors implementaron el primer
sistema operativo en los 50's generalmente corría una tarea a la vez y suavizó la
transición entre tareas para obtener máxima utilización del sistema de la
computadora. Los sistemas operativos de los años cincuenta fueron diseñados para
hacer más fluida la transmisión entre trabajos. Antes de que los sistemas fueran
diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el
inicio de siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes,
donde los trabajos se reunían por grupo o lotes. Cuando el trabajo estaba en
ejecución, este tenia control total de la máquina. Al terminar cada trabajo (bien
normal o anormalmente), el control era envuelto al sistema operativo, el cual
"limpiaba" y leía e inicia el trabajo siguiente.

3. Segunda generación 1960 - 1970


La característica de la segunda generación de los sistemas operativos fue el
desarrollo de los sistemas compartido con multiprogramación, y los principios del
multiprocesamiento. En los sistemas de multiprogramación, varios programas de
usuarios se encuentran el mismo tiempo en el almacenamiento principal, y el
procesador se cambia rápidamente de un trabajo a otro. En los sistemas de
multiprocesamiento se utilizan varios procesadores en un solo sistema
computacional, con la finalidad de incrementar el poder de procesamiento de la
máquina. La independencia de dispositivos aparece después. Un usuario que deseara
escribir datos en una cinta en sistemas de la primera generación tenia que hacer
referencia específica a una unidad en particular. En los sistemas de la segunda
generación, el programa del usuario especificaba tan solo que un archivo iba a ser
escrito en una unidad de cinta con cierto número de pistas y cierta densidad. El
sistema operativo localizaba, entonces, una unidad de cinta disponible con las
características deseadas, y le indicaba al operador que montara una cinta en esa
unidad.

El surgimiento de un nuevo campo: LA INGENIERÍA DE SOFTWARE.

Los sistemas operativos desarrollados durante los 60s tuvieron una enorme
conglomeración de software escrito por gente quienes realmente no entendía el
software, también como el hardware, tenias que ser ingeniero para ser digno de
confianza, entendible y mantenible. Finalmente cuando encontraron y removieron
algunos errores que nunca pudieron completar el sistema original. Errores en las
fases fáciles de los proyectos no fueron localizados antes de un largo tiempo fueron
entregados a los clientes; por este lado los errores fueron enormemente grandes
para corregir. La gente obtuvo frecuentemente números grandes de módulos de
software empezó a ser fragmentado y reescrito por personas nuevas porque
existían módulos que realmente no se entendían. Se tomó más atención a estos
problemas eventualmente científicos de la computación y profesionales en la
industria comenzaron a dedicar considerables recursos para el problema de
construir sistemas de software. La emergencia de el campo de ingeniería de
software y el reconocimiento de la importancia del desarrollo de una disciplinada y
desarrollada aproximada a la construcción software digno de confianza, entendible y
mantenible fuertemente unidos por la vasta experiencia con algunos de los sistemas
operativos desarrollados en los 60s.

En la década de los sesenta con el surgimiento de la multiprogramación y los


sistemas multiusuario se introducen nuevos conceptos de interacción hombre –
máquina, los sistemas en tiempo real recogían, analizaban y transformaban datos de
múltiples fuentes y apoyan la toma de decisiones, y como consecuencia nace la
primer generación de sistemas de gestión de bases de datos. Esta era se
caracteriza por la aparición del software como producto y el nacimiento de las casa
de software donde se producían programas de miles de líneas de código fuente que
tenían que ser corregidos cuando se detectaban fallas y modificados cuando
cambiaban los requisitos, entonces se fomenta el proceso de desarrollo de software
tipo codifica y corrige. Como consecuencia de esta práctica y debido a que los
proyectos de software presentaban muchas fallas dado que los desarrollos
terminaban sobrepasando el tiempo y costos estimados al inicio del proyecto, no se
obtenían los resultados esperados y el software era poco flexible, se inicia un
fenómeno conocido como la “crisis del software”, por esta razón en 1968 se realiza
la primera conferencia sobre desarrollo de software en Múnich, financiada por la
OTAN. Allí la “crisis del software” se convierte en el tema central y se utilizó por
primera vez el término "ingeniería del software" para describir el conjunto de
conocimientos que existían en un estado inicial, así pues nace formalmente la rama
de ingeniería de software.

4. Tercera generación 1970 - 1980


La tercera generación de sistemas operativos comenzó en forma efectiva, en 1964,
con la introducción de la familia de computadores Sistemas/360 de IBM.
Los Lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos
independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.
Dichos lenguajes son utilizados por especialistas, programadores, y otros para
desarrollar programas y sistemas que requieren de un procedimiento específico para
la computadora. Los lenguajes de alto nivel no obligan al usuario a conocer los
detalles de la computadora que utiliza.
Con estos lenguajes las operaciones se expresan con sentencias o frases muy
parecidas al lenguaje matemático o al lenguaje natural, utilizados habitualmente por
las personas (igual que para los ensambladores, predomina el uso de palabras o
términos en inglés).
Las variadas computadoras 360 fueron diseñadas para ser compatibles con el
hardware, para usar el OS/360 sistema operativo, y para ofrecer mayor poder
computacional a como iba avanzando el usuario en las series. Sistemas operativos
más avanzados fueron desarrollados para servir a múltiples usuarios interactivos a
la vez. Los usuarios interactivos se comunicaban con la computadora vía terminales
que están en línea conectadas directamente a la computadora. Los computadores de
la tercera generación fueron diseñados como sistemas de usos generales. Casi
siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para
toda la gente. Este concepto vendió gran cantidad de computadores, pero tenía su
precio. Los usuarios que necesitaban de algunas aplicaciones particulares que no
requerían de este tipo de poder pagaban caro el elevado tiempo de ejecución, tiempo
de , tiempo de depuración, mantenimiento, etc. Los sistemas operativos de la
tercera generación eran sistemas de modos múltiples. Algunos soportan
simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo
real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido
algo similar, y muchos de los esfuerzos de desarrollo terminaron muy arriba del
presupuesto y mucho después de lo que el planificador marcaba como fecha de
terminación.
La década de los ochenta se caracteriza por la productividad y escalabilidad de
sistemas y equipos de desarrollo, la industria del software es la cuna de la economía del
mundo donde las técnicas para el desarrollo de software de cuarta generación (4GLs)
cambian la forma en que se construyen los programas para incrementar la productividad
a través de la programación por el usuario, se introducen la tecnología de programación
orientada a objetos a través de múltiples lenguajes de programación desplazando los
enfoques de desarrollo tradicionales. A finales de esta década se crea el primer modelo
de madurez de capacidad de procesos (SW-CMM).

5. Cuarta generación 1990-2000


Los sistemas de la cuarta generación constituyen el estado actual de la tecnología.
Muchos diseñadores y usuarios se sienten aun incómodos, después de sus
experiencias con los sistemas operativos de la tercera generación, y se muestran
cautelosos antes de comprometerse con sistemas operativos complejos. Con la
ampliación del uso de redes de computadores y del procesamiento en línea los
usuarios obtienen acceso a computadores alejados geográficamente a través de
varios tipos de terminales. El microprocesador ha hecho posible la aparición del
computadora personal, uno de los desarrollos de notables consecuencias sociales mas
importantes de las últimas décadas. Ahora muchos usuarios han desarrollado
sistemas de computación que son accesibles para sus uso personal en cualquier
momento del día o de la noche. La potencia de computador, que costaba varios
cientos de miles de dólares al principio de la década de 1960, hoy es accesible por
menos de mil dólares. El porcentaje de la población que tiene acceso a un
computador en la década de los ochenta es mucho mayor y aumentó rápidamente.
Individuos podían tener su propia computadora para realizar parte de su trabajo, y
utilizar facilidades de comunicación para transmitir datos entre sistemas. La
aplicación de paquetes de software tales como procesadores de palabras, paquetes
de bases de datos y paquetes de gráficos ayudaron a la evolución de la computadora
personal. La llave era transferir información entre computadoras en redes de
trabajo de computadoras. El correo electrónico, transferencia de archivos, y
aplicaciones de acceso a bases de datos proliferaron. El modelo cliente-servidor fue
esparcido. El campo de ingeniería de software continuó evolucionando con una mayor
confianza proveniente de los E.U. . Los ambientes del usuario, altamente simbólicos,
mnemónicos y orientados hacia las siglas de las décadas de los sesenta y setenta,
están siendo reemplazados, en la década de los ochenta, por los sistemas
controlados por menú, los cuales guían al usuario a lo largo de varias opciones
expresadas en un lenguaje sencillo. En los 90's habremos de entrar a la era de la
verdadera distribución de computación en la cual calcula dentro de subcalculos que
pueden ser ejecutados en otros procesadores en computadoras de múltiples
procesadores y en conmutadores de red. Estos tipos de conectividad son facilitados
para abrir sistemas estándar y protocolos que se empiezan desarrollar para grupos.
6. Quinta generación hasta la actualidad
Se llama así a veces a los lenguajes de inteligencia artificial, aunque con el fracaso del
proyecto japonés de la quinta generación el nombre ha caído en desuso. La quinta
generación de computadoras, también conocida por sus siglas en inglés, FGCS (de
Fifth Generation Computer Systems) fue un ambicioso proyecto propuesto por Japón a
finales de década de 1970. Su objetivo era el desarrollo de una nueva clase de
computadoras que utilizarían técnicas y tecnologías inteligencia artificial tanto en el
plano del hardware como del software, usando el lenguaje PROLOG al nivel del
lenguaje de máquina y serían capaces de resolver problemas complejos, como la
traducción automática de una lengua natural a otra (del japonés al inglés, por ejemplo).
El proyecto duró once años, pero no obtuvo los resultados esperados: las
computadoras actuales siguieron así, ya que hay muchos casos en los que, o bien es
imposible llevar a cabo una paralelización del mismo, o una vez llevado a cabo ésta, no
se aprecia mejora alguna, o en el peor de los casos, se produce una pérdida de
rendimiento.

En los noventa y el nuevo siglo, la concurrencia (paralelismo y distribución) adquiere


mayor importancia, la orientación a objetos se extiende a las fases de análisis y diseño,
se implementa el lenguaje de modelado (UML) y se genera el primer proceso comercial
de desarrollo orientado objetos (RUP). Los diseñadores y los arquitectos de software
inician su experiencia a través de patrones de diseño y de arquitectura. Se define el
modelo en espiral para el desarrollo basado en el análisis de riesgos y el desarrollo de
software iterativo e incremental. Para esta década el software era privado entonces
surge la necesidad por parte de un grupo de programadores de crear proyectos que
impulsan la creación de software libre y de código abierto. La usabilidad de sistemas se
convierte en el foco de atención e investigación, el software empieza a ocupar la
posición crítica en el mercado competitivo y en la sociedad Web.

En la actualidad los temas atañen a la agilidad en el desarrollo y el valor para el cliente,


los nuevos dispositivos (Celulares, PDAs, etc.) se involucran en el ciclo de vida, las
cualidades prioritarias de los sistemas son Seguridad/Privacidad, Usabilidad y
Confiabilidad, se incrementa la programación de software empaquetado. El desarrollo
dirigido por modelos toma fuerza y se integra el desarrollo de software con el de
sistemas. La conectividad global proporcionada por el Internet y las comunicaciones de
banda ancha son la evolución de las principales economías hacia redes de economías.

La tecnología digital está transformando a las organizaciones de negocio, los sistemas


actuales afectan directamente la forma en que los administrativos deciden, la forma en
que los directivos planifican, y en muchos casos que bienes y servicios se producen y
cómo, la creciente potencia de la tecnología de computación ha dado origen a
poderosas redes de comunicación que las organizaciones pueden usar para acceder a
grandes depósitos de información de todo el mundo y coordinar sus actividades en el
espacio y tiempo, estas redes están transformando la forma y el aspecto de las
empresas de negocio, e incluso a la sociedad. En consecuencia, se requerirá de nuevos
procesos de desarrollo para la colaboración global exitosa.

Conclusion:

Hemos resumido muy brevemente la historia de la Ingeniería del Software y sus principales

innovaciones hasta la fecha; sin embargo, la Ingeniería del Software deberá evolucionar

aún mucho más para adaptarse a la computación molecular, la computación cuántica y la

computación biológica, etc.

Hay que reconocer que, como toda disciplina joven, la Ingeniería del Software ha

recorrido algunas veces caminos poco claros, siguiendo determinadas “modas” sin saber muy
bien a dónde conducían; es la denominada por Alan Davis “Lemmingeniería del Software”,

que ha causado confusión y decepción en muchos usuarios y profesionales del software.

Por eso es muy importante la formación del Profesional Informático, al que se le desafía

para que proporcione soluciones a los problemas dentro de un cierto coste y tiempo,

siendo responsable de construir productos de calidad (usables, seguros, mantenibles, etc.).

//Esta informacion la saqué de este link:


//http://ugmacb19.blogspot.com/2012/10/generaciones-de-software-sistemas.html
//Me falta la quinta generación hasta la actualidad!

//Por ahora esto es lo que encontré sobre la quinta generacion traten de actualizar
//la informacion ademas de agregar cosas como CONCLUSION o INTRODUCCION
//y lo demás que vean conveniente

Anda mungkin juga menyukai