Escolar Documentos
Profissional Documentos
Cultura Documentos
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).
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.
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.
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.
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.