21
HISTORIA Y TIPOS HISTORIA Y TIPOS DE SOFTWARE DE SOFTWARE ING. OCTAVIO ALBERTO SANTIAGO DELGADO ING. OCTAVIO ALBERTO SANTIAGO DELGADO

Historia y Tipos de Software

  • Upload
    oasandel

  • View
    11.796

  • Download
    1

Embed Size (px)

DESCRIPTION

PRESENTACION SOBRE LA HISORIA Y TIPOS DE SOFTWARE

Citation preview

Page 1: Historia y Tipos de Software

HISTORIA Y TIPOS DE HISTORIA Y TIPOS DE SOFTWARESOFTWARE

ING. OCTAVIO ALBERTO SANTIAGO DELGADOING. OCTAVIO ALBERTO SANTIAGO DELGADO

Page 2: Historia y Tipos de Software

CONTENIDOCONTENIDO

Definicion de Software

Historia

Tipos de Software

Sistemas Operativos

Lenguajes de Programacion

Programas de Aplicacion

Page 3: Historia y Tipos de Software

Software: palabra proveniente del ingles (literalmente: partes blandas o suaves), que en nuestro idioma no posee una traducción adecuada al contexto, por lo cual se utiliza asiduamente sin traducir y fue admitida por la Real Academia Española (RAE).

La palabra «software» se refiere al equipamiento lógico o soporte lógico de un computador digital, comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware).

Definicion de SOFTWAREDefinicion de SOFTWARE

Page 4: Historia y Tipos de Software

HISTORIAHISTORIA

La historia del software como se ha visto, no surge con los equipos La historia del software como se ha visto, no surge con los equipos electrónicos, -aunque es con ellos que adopta el nombre- está electrónicos, -aunque es con ellos que adopta el nombre- está presente desde el empleo de ábacos o sumadoras mecánicas. presente desde el empleo de ábacos o sumadoras mecánicas.

Sin embargo, en estos casos, el software no se encuentra Sin embargo, en estos casos, el software no se encuentra incorporado en el equipo. Es aportado por el operario. incorporado en el equipo. Es aportado por el operario.

La máquina analítica de Charles Babbage, incidentalmente, tuvo su La máquina analítica de Charles Babbage, incidentalmente, tuvo su software, y fue una amiga de éste, la legendaria lady Lovelace, software, y fue una amiga de éste, la legendaria lady Lovelace, quien aportó el software que no se llegó a usar, dado que la quien aportó el software que no se llegó a usar, dado que la máquina nunca se completó. En el ENIAC el control de las máquina nunca se completó. En el ENIAC el control de las operaciones estaba parcialmente integrado en el equipo. operaciones estaba parcialmente integrado en el equipo.

Page 5: Historia y Tipos de Software

Dicho control era realizado por un circuito que requería un alambrado específico Dicho control era realizado por un circuito que requería un alambrado específico para cada aplicación. Imaginemos lo engorroso que resultaba realambrar el para cada aplicación. Imaginemos lo engorroso que resultaba realambrar el circuito cada vez que cambiaba el uso del ENIAC.circuito cada vez que cambiaba el uso del ENIAC.

Hasta este momento, no se percibía una diferencia sustancial entre el equipo y el Hasta este momento, no se percibía una diferencia sustancial entre el equipo y el control de las operaciones. El concepto de programa de control almacenado en control de las operaciones. El concepto de programa de control almacenado en memoria, aportación popularmente atribuida a John von Neumann, precipitó el memoria, aportación popularmente atribuida a John von Neumann, precipitó el desarrollo de software.desarrollo de software.

En éste se perfilaron dos tendencias de desarrollo: los programas de aplicación y En éste se perfilaron dos tendencias de desarrollo: los programas de aplicación y los de servicio. Estos últimos tenían como propósito facilitar el desarrollo de los de servicio. Estos últimos tenían como propósito facilitar el desarrollo de programas a partir de programas.programas a partir de programas.

Algunos programas de servicio fueron simples cargadores que permitieron Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal más compactas que el binario.emplear notaciones como el octal o hexadecimal más compactas que el binario.

Page 6: Historia y Tipos de Software

Otros como los ensambladores simplificaron más el proceso al reemplazar Otros como los ensambladores simplificaron más el proceso al reemplazar las notaciones numéricas con los símbolos mnemónicos que aportaron las notaciones numéricas con los símbolos mnemónicos que aportaron para describir a cada instrucción de la máquina. El siguiente paso para describir a cada instrucción de la máquina. El siguiente paso significativo fue la traducción de fórmulas, que permitió el desarrollo de significativo fue la traducción de fórmulas, que permitió el desarrollo de la historia del software y la descripción de los algoritmos con el empleo la historia del software y la descripción de los algoritmos con el empleo de expresiones algebraicas.de expresiones algebraicas.

Dicha traducción se realiza con programas que se denominan Dicha traducción se realiza con programas que se denominan compiladores, generan programas que al ejecutarse producen los compiladores, generan programas que al ejecutarse producen los resultados. Es importante destacar que en tanto los programas de resultados. Es importante destacar que en tanto los programas de aplicación saturaron los recursos de los equipos, imponiendo sus aplicación saturaron los recursos de los equipos, imponiendo sus requerimientos en cuanto a velocidad, precisión en la aritmética y requerimientos en cuanto a velocidad, precisión en la aritmética y capacidad en los almacenamientos; los programas de servicio capacidad en los almacenamientos; los programas de servicio repercutieron en la evolución de la arquitectura de los equipos (hardware).repercutieron en la evolución de la arquitectura de los equipos (hardware).

Page 7: Historia y Tipos de Software

En los principios de la historia del software, los sistemas operativos brotan como extensiones de los lenguajes. Posteriormente, el fenómeno se invierte de modo que los sistemas operativos configuren el ambiente en el que se desempeñan las aplicaciones y los programas de servicio.

Page 8: Historia y Tipos de Software

TIPOS DE SOFTWARETIPOS DE SOFTWARE

Los Los tipos de softwaretipos de software han paulatinamente adquirió mayor han paulatinamente adquirió mayor importancia que el hardware. En un principio, la proporción favorecía importancia que el hardware. En un principio, la proporción favorecía al equipo físico, pero progresivamente, el componente inmaterial al equipo físico, pero progresivamente, el componente inmaterial adquirió una mayor relevancia hasta hacerse el más importante.adquirió una mayor relevancia hasta hacerse el más importante.

Para facilitar su análisis, los tipos de software se clasifica Para facilitar su análisis, los tipos de software se clasifica generalmente en tres grandes rubros: generalmente en tres grandes rubros:

Sistemas operativosSistemas operativos

Lenguajes de programaciónLenguajes de programación

Programas de aplicación. Programas de aplicación.

Page 9: Historia y Tipos de Software

SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS

El software de sistema es el software básico o Sistema Operativo. Es un El software de sistema es el software básico o Sistema Operativo. Es un conjunto de programas cuyo objeto es facilitar el uso del computador (aísla conjunto de programas cuyo objeto es facilitar el uso del computador (aísla de la complejidad de cada dispositivo, y presenta al exterior un modelo de la complejidad de cada dispositivo, y presenta al exterior un modelo común de sistema de manejo para todos los dispositivos) y conseguir que se común de sistema de manejo para todos los dispositivos) y conseguir que se use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un programa). Administra y asigna los recursos del sistema (hard-ware).programa). Administra y asigna los recursos del sistema (hard-ware).

Los Sistemas Operativos, surgen como extensiones de los lenguajes de Los Sistemas Operativos, surgen como extensiones de los lenguajes de programación, tal es el sistema FAP elaborado para la IBM 709 que programación, tal es el sistema FAP elaborado para la IBM 709 que orbitaba en torno al lenguaje Fortran, con una mínima participación del orbitaba en torno al lenguaje Fortran, con una mínima participación del operador, estableció un flujo controlado automáticamente para el proceso operador, estableció un flujo controlado automáticamente para el proceso de lotes de aplicaciones (batch). de lotes de aplicaciones (batch).

Page 10: Historia y Tipos de Software

Con el aumento tanto de los equipos como de los programas de servicio, las Con el aumento tanto de los equipos como de los programas de servicio, las funciones y características de los sistemas operativos se ampliaron y funciones y características de los sistemas operativos se ampliaron y sofisticaron, al grado de adquirir su propio dialecto o lenguaje, tal es el 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 caso del OS/360 para la serie 360 de la IBM, con su JCL (Job Control Language) como lenguaje de control.Language) como lenguaje de control.

Algunos sistemas aportaron el concepto de la multiprogramación como Algunos sistemas aportaron el concepto de la multiprogramación como una medida para incrementar la productividad de la computadora como el una medida para incrementar la productividad de la computadora como el OS/360, otros, la interacción con el usuario representa esfuerzos OS/360, otros, la interacción con el usuario representa esfuerzos intelectuales de consideración, el sistema operativo para la serie 370 de la intelectuales de consideración, el sistema operativo para la serie 370 de la IBM, tuvo un costo de 5 millones de horas hombre.IBM, tuvo un costo de 5 millones de horas hombre.

Page 11: Historia y Tipos de Software

La interacción con el usuario dió una nueva dimensión al uso de los equipos y con ello, produjo el concepto de tiempo compartido. Entre los sistemas que aplicaron esta filosofía de operación 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 también 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.

Page 12: Historia y Tipos de Software

LENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACION

Un lenguaje de programacion es un conjunto de símbolos y reglas sintacticas y semanticas que definen su estructura y el significado de sus elementos y expresiones, y es utilizado para controlar el comportamiento físico y lógico de una máquina.

Aunque muchas veces se usan los términos 'lenguaje de programación' y ‘lenguaje informatico' como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de paginas web que no es propiamente un lenguaje de programación).

Un lenguaje de programación permite a uno o más programadores especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias.

Page 13: Historia y Tipos de Software

Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Lexico.

Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras son capaces de entender y actuar según 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 máquina. A ese proceso se lo llama compilar y al programa traductor se le denomina compilador.

Page 14: Historia y Tipos de Software

CLASIFICACIONCLASIFICACION DE LOS LENGUAJES DE PROGRAMACIONDE LOS LENGUAJES DE PROGRAMACION

Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:

Según el nivel de abstracción

Según la forma de ejecución

Page 15: Historia y Tipos de Software

SegúnSegún su nivel de abstracción:su nivel de abstracción:

Lenguajes Maquina:Lenguajes Maquina:

Están 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 traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas.

Lenguajes de bajo nivel:Lenguajes de bajo nivel:

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más 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.

Page 16: Historia y Tipos de Software

Lenguajes de medio nivel:Lenguajes de medio nivel:

Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

Lenguajes de alto nivel:Lenguajes de alto nivel:

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, uno de los lenguajes de alto nivel más 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 sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos.

Page 17: Historia y Tipos de Software

Según la forma de ejecuciónSegún la forma de ejecución

Lenguajes compilados:Lenguajes compilados:

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una compilación antes de ejecutar las instrucciones de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código 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 código.

Page 18: Historia y Tipos de Software

Lenguajes interpretados:Lenguajes interpretados:

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En Se puede también 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 código objeto que se produce durante la vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. computadora junto con los datos que se van a procesar.

A continuación, un programa interprte, almacenado en el sistema operativo del disco, o incluido de manera A continuación, un programa interprte, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente. utilizarlo posteriormente. La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo:Por ejemplo:

Durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver Durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). no se tiene que estar compilando a cada momento el código completo).

El intérprete elimina la necesidad de realizar una de compilación después de cada modificación del programa El intérprete elimina la necesidad de realizar una de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.ejecución del código.

Page 19: Historia y Tipos de Software

PROGRAMAS DE APLICACIONPROGRAMAS DE APLICACIONEl software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto.

La diferencia entre los programas de aplicación y los de sistema estriba en que los de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un uso más cómo del mismo, mientras los de aplicación son programas que cooperan con el usuario para la realización de las actividades mencionadas.

Es en este software de Aplicación donde se aprecia en forma más clara la ayuda que puede suponer un computador en las actividades humanas, ya que la máquina se convierte en un auxiliar del hombre, liberándole 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.

Page 20: Historia y Tipos de Software

Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar el sistema operativo, para conseguir satisfacer estas necesidades.

Sus programas deben ser independientes del hardware específico que se utilice y deben ser transportados sin grandes problemas de adaptación a otras computadoras y otros entornos operativos.

Dentro de los programas de aplicación, puede ser útil una distinción entre aplicaciones verticales, de finalidad específica para un tipo muy delimitado de usuarios (médicos, abogados, arquitectos…), y aplicaciones horizontales, de utilidad para una amplísima gama de usuarios de cualquier tipo.

Page 21: Historia y Tipos de Software

Algunos ejemplos de software aplicaciones son:

•Procesadores de texto. (Bloc de Notas)

•Editores. (PhotoShop para el Diseño Gráfico)

•Hojas de Cálculo. (MS Excel)

•Sistemas gestores de bases de datos. (MySQL)

•Programas de comunicaciones. (MSN Messenger)

•Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)

•Programas de diseño asistido por computador. (AutoCAD)