Você está na página 1de 21

HISTORIA Y TIPOS DE

SOFTWARE
ING. OCTAVIO ALBERTO SANTIAGO DELGADO

CONTENIDO
Definicion de Software
Historia
Tipos de Software
Sistemas Operativos
Lenguajes de Programacion
Programas de Aplicacion
Autor del libro: Martnez, L. (2005) Barcelona

Definicion de SOFTWARE
Software: palabra proveniente del ingles (literalmente: partes blandas
o suaves), que en nuestro idioma no posee una traduccin adecuada al
contexto, por lo cual se utiliza asiduamente sin traducir y fue admitida
por la Real Academia Espaola (RAE).

La palabra software se refiere al equipamiento lgico o soporte


lgico de un computador digital, comprende el conjunto de los
componentes lgicos necesarios para hacer posible la realizacin de
una tarea especfica, en contraposicin a los componentes fsicos del
sistema (hardware).

HISTORIA
La historia del software como se ha visto, no surge con los equipos
electrnicos, -aunque es con ellos que adopta el nombre- est
presente desde el empleo de bacos o sumadoras mecnicas.
Sin embargo, en estos casos, el software no se encuentra
incorporado en el equipo. Es aportado por el operario.
La mquina analtica de Charles Babbage, incidentalmente, tuvo su
software, y fue una amiga de ste, la legendaria lady Lovelace,
quien aport el software que no se lleg a usar, dado que la
mquina nunca se complet. En el ENIAC el control de las
operaciones estaba parcialmente integrado en el equipo.

Dicho control era realizado por un circuito que requera un alambrado especfico
para cada aplicacin. Imaginemos lo engorroso que resultaba realambrar el
circuito cada vez que cambiaba el uso del ENIAC.
Hasta este momento, no se perciba una diferencia sustancial entre el equipo y el
control de las operaciones. El concepto de programa de control almacenado en
memoria, aportacin popularmente atribuida a John von Neumann, precipit el
desarrollo de software.
En ste se perfilaron dos tendencias de desarrollo: los programas de aplicacin y
los de servicio. Estos ltimos tenan como propsito facilitar el desarrollo de
programas a partir de programas.
Algunos programas de servicio fueron simples cargadores que permitieron
emplear notaciones como el octal o hexadecimal ms compactas que el binario.

Otros como los ensambladores simplificaron ms el proceso al reemplazar


las notaciones numricas con los smbolos mnemnicos que aportaron
para describir a cada instruccin de la mquina. El siguiente paso
significativo fue la traduccin de frmulas, que permiti el desarrollo de
la historia del software y la descripcin de los algoritmos con el empleo
de expresiones algebraicas.

Dicha traduccin se realiza con programas que se denominan


compiladores, generan programas que al ejecutarse producen los
resultados. Es importante destacar que en tanto los programas de
aplicacin saturaron los recursos de los equipos, imponiendo sus
requerimientos en cuanto a velocidad, precisin en la aritmtica y
capacidad en los almacenamientos; los programas de servicio
repercutieron en la evolucin de la arquitectura de los equipos (hardware).

En los principios de la historia del software, los sistemas operativos


brotan como extensiones de los lenguajes. Posteriormente, el
fenmeno se invierte de modo que los sistemas operativos configuren
el ambiente en el que se desempean las aplicaciones y los
programas de servicio.

TIPOS DE SOFTWARE
Los tipos de software han paulatinamente adquiri mayor
importancia que el hardware. En un principio, la proporcin favoreca
al equipo fsico, pero progresivamente, el componente inmaterial
adquiri una mayor relevancia hasta hacerse el ms importante.
Para facilitar su anlisis, los tipos de software se clasifica
generalmente en tres grandes rubros:

Sistemas operativos
Lenguajes de programacin
Programas de aplicacin.

SISTEMAS OPERATIVOS
El software de sistema es el software bsico o Sistema Operativo. Es un
conjunto de programas cuyo objeto es facilitar el uso del computador (asla
de la complejidad de cada dispositivo, y presenta al exterior un modelo
comn de sistema de manejo para todos los dispositivos) y conseguir que se
use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un
programa). Administra y asigna los recursos del sistema (hard-ware).
Los Sistemas Operativos, surgen como extensiones de los lenguajes de
programacin, tal es el sistema FAP elaborado para la IBM 709 que
orbitaba en torno al lenguaje Fortran, con una mnima participacin del
operador, estableci un flujo controlado automticamente para el proceso de
lotes de aplicaciones (batch).

Con el aumento tanto de los equipos como de los programas de servicio, las
funciones y caractersticas de los sistemas operativos se ampliaron y
sofisticaron, al grado de adquirir su propio dialecto o lenguaje, tal es el
caso del OS/360 para la serie 360 de la IBM, con su JCL (Job Control
Language) como lenguaje de control.

Algunos sistemas aportaron el concepto de la multiprogramacin como


una medida para incrementar la productividad de la computadora como el
OS/360, otros, la interaccin con el usuario representa esfuerzos
intelectuales de consideracin, el sistema operativo para la serie 370 de la
IBM, tuvo un costo de 5 millones de horas hombre.

La interaccin con el usuario di una nueva dimensin al uso de los equipos y


con ello, produjo el concepto de tiempo compartido. Entre los sistemas que
aplicaron esta filosofa de operacin destacan: CTSS (Compatible Time Sharing
System) desarrollado en el MIT para una IBM 7090. TOPS-10 para la PDP-10 de
la Digital Equipment Corporation (DEC) MULTICS, elaborado tambin en el
MIT para equipos de General Electric y Honeywell.

En las minicomputadoras destacan el OS para la PDP-8 desarrollado por la DEC


y UNIX, un sistema operativo para la PDP-11 de DEC, desarrollado por dos
investigadores en los laboratorios de la Bell Telephone.

LENGUAJES DE PROGRAMACION
Un lenguaje de programacion es un conjunto de smbolos y reglas sintacticas y
semanticas que definen su estructura y el significado de sus elementos y expresiones, y
es utilizado para controlar el comportamiento fsico y lgico de una mquina.
Aunque muchas veces se usan los trminos 'lenguaje de programacin' y lenguaje
informatico' como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes
informticos engloban a los lenguajes de programacin y a otros ms, como, por
ejemplo, el HTML (lenguaje para el marcado de paginas web que no es propiamente un
lenguaje de programacin).
Un lenguaje de programacin permite a uno o ms programadores especificar de
manera precisa sobre qu datos debe operar una computadora, cmo estos datos deben
ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de
circunstancias.

Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje
humano o natural, tal como sucede con el lenguaje Lexico.
Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de
un programador puedan tener un conjunto comn de instrucciones que puedan ser
comprendidas entre ellos para realizar la construccin del programa de forma colaborativa.
Los procesadores usados en las computadoras son capaces de entender y actuar segn lo
indican programas escritos en un lenguaje fijo llamado lenguaje de maquina. Todo
programa escrito en otro lenguaje puede ser ejecutado de dos maneras:
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A
este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como
interpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de mquina. A ese
proceso se lo llama compilar y al programa traductor se le denomina compilador.

CLASIFICACION DE LOS LENGUAJES DE PROGRAMACION

Los lenguajes de programacin se pueden clasificar atendiendo a


varios criterios:
Segn el nivel de abstraccin
Segn la forma de ejecucin

Segn su nivel de abstraccin:


Lenguajes Maquina:
Estn escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que
sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un
programa a la memoria) sin necesidad de traduccin posterior lo que supone una velocidad de
ejecucin superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los
programas.

Lenguajes de bajo nivel:


Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento
de una computadora. El lenguaje de ms bajo nivel por excelencia es el codigo maquina. A
ste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los
registros de memoria de la computadora de forma directa.

Lenguajes de medio nivel:


Hay lenguajes de programacin que son considerados por algunos expertos como lenguajes de
medio nivel (como es el caso del lenguaje C) al tener ciertas caractersticas que los acercan a
los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un
lenguaje ms cercano al humano y, por tanto, de alto nivel.

Lenguajes de alto nivel:


Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por
elementos de lenguajes naturales, como el ingls. En BASIC, uno de los lenguajes de alto
nivel ms conocidos, los comandos como "IF CONTADOR = 10 THEN STOP" pueden
utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Esta forma
de trabajar puede dar la sensacin de que las computadoras parecen comprender un lenguaje
natural; en realidad lo hacen de una forma rgida y sistemtica, sin que haya cabida, por
ejemplo, para ambigedades o dobles sentidos.

Segn la forma de ejecucin


Lenguajes compilados:
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene
que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores
que pueden realizar esta operacin se llaman compiladores. stos, como los programas
ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada
proposicin del programa fuente. Se requiere una compilacin antes de ejecutar las
instrucciones de un problema.
Los compiladores son aquellos cuya funcin es traducir un programa escrito en un
determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con
cdigo binario).
Al usar un lenguaje compilado (como lo son, por ejemplo, los lenguajes del popular
Visual Studio de Microsoft), el programa desarrollado nunca se podr ejecutar mientras
haya errores, sino hasta que tras haber compilado el programa, ya no aparecen errores
en el cdigo.

Lenguajes interpretados:
Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En
vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la
compilacin para utilizarlo en una ejecucin futura, el programador slo carga el programa fuente en la
computadora junto con los datos que se van a procesar.
A continuacin, un programa interprte, almacenado en el sistema operativo del disco, o incluido de manera
permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina
conforme vaya siendo necesario durante el procesamiento de los datos. El cdigo objeto no se graba para
utilizarlo posteriormente.
La siguiente vez que se utilice una instruccin, se la deber interpretar otra vez y traducir a lenguaje mquina.
Por ejemplo:
Durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instruccin del bucle tendr que volver
a ser interpretada en cada ejecucin repetida del ciclo, lo cual hace que el programa sea ms lento en tiempo de
ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque
no se tiene que estar compilando a cada momento el cdigo completo).
El intrprete elimina la necesidad de realizar una de compilacin despus de cada modificacin del programa
cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con
antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una
ejecucin del cdigo.

PROGRAMAS DE APLICACION
El software de Aplicacin es aquel que hace que el computador coopere con el
usuario en la realizacin de tareas tpicamente humanas, tales como gestionar una
contabilidad o escribir un texto.
La diferencia entre los programas de aplicacin y los de sistema estriba en que los
de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un
uso ms cmo del mismo, mientras los de aplicacin son programas que cooperan
con el usuario para la realizacin de las actividades mencionadas.
Es en este software de Aplicacin donde se aprecia en forma ms clara la ayuda
que puede suponer un computador en las actividades humanas, ya que la mquina
se convierte en un auxiliar del hombre, liberndole de las tareas repetitivas.
Los programadores de aplicaciones, a diferencia de los programadores de
sistemas, no necesitan conocer a fondo el modo de funcionamiento interno del
hardware.

Basta con que conozcan las necesidades de informacin de sus aplicaciones y cmo
usar el sistema operativo, para conseguir satisfacer estas necesidades.

Sus programas deben ser independientes del hardware especfico que se utilice y
deben ser transportados sin grandes problemas de adaptacin a otras computadoras y
otros entornos operativos.
Dentro de los programas de aplicacin, puede ser til una distincin entre
aplicaciones verticales, de finalidad especfica para un tipo muy delimitado de
usuarios (mdicos, abogados, arquitectos), y aplicaciones horizontales, de utilidad
para una amplsima gama de usuarios de cualquier tipo.

Algunos ejemplos de software aplicaciones son:

Procesadores de texto. (Bloc de Notas)

Editores. (PhotoShop para el Diseo Grfico)

Hojas de Clculo. (MS Excel)

Sistemas gestores de bases de datos. (MySQL)

Programas de comunicaciones. (MSN Messenger)

Paquetes integrados. (Ofimtica: Word, Excel, PowerPoint)

Programas de diseo asistido por computador. (AutoCAD)

Você também pode gostar