4
10/08/2010 1 Tema 3: Software operativo y de desarrollo MI Elizabeth Fonseca Chávez FI UNAM Objetivo: El alumno conocerá y entenderá la evolución del software y la situación actual que éste presenta. Asimismo distinguirá los diferentes tipos de programas (software) necesarios tanto para operar la máquina como para realizar desarrollos y aunado a esto tendrá las bases para seleccionar aquel software que le permita resolver un problema. Evolución del software y su situación actual el software se clasifica generalmente en tres grandes rubros: sistemas operativos, lenguajes de programación y programas de aplicación. Tenemos software de base: sistemas operativos, lenguajes y traductores y Software aplicativo: a la medida y de propósito general La máquina analítica 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 máquina 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 requería un alambrado específico para cada aplicación. Imaginemos lo engorroso que resultaba realambrarel circuito cada vez que cambiaba el uso del ENIAC. ENIAC. para agilizar la labor del censo del año 1890 en plena revolución industrial Historia del software 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 memoria, aportación popularmente atribuida a John von Neumann, precipitó el desarrollo de software. 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 programas a partir de programas. Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal más compactas que el binario. Otros como los ensambladores simplificaron más el proceso al reemplazar 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 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 de expresiones algebraicas. Historia del software Dicha traducción 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 aplicación saturaron los recursos de los equipos, imponiendo sus requerimientos en cuanto a velocidad, precisión en la aritmética y capacidad en los almacenamientos; los programas de servicio repercutieron en la evolución de la arquitectura de los equipos (hardware). Entre las aportaciones más notables, podemos citar el empleo de pilas y el reemplazo de referencias físicas por lógicas. Con la pila (PushDown List), se da lugar al manejo recursivo de los procesos. Por ejemplo, esto ocurre en una oficina administrativa, cuando se pospone la solución de un problema para resolver otro de mayor exigencia.

Tema 3: presenta. desarrollo - Computacion para … · Algunos programas de servicio fueron simples cargadores que permitieron ... Dicha traducción se realiza con programas que se

Embed Size (px)

Citation preview

Page 1: Tema 3: presenta. desarrollo - Computacion para … · Algunos programas de servicio fueron simples cargadores que permitieron ... Dicha traducción se realiza con programas que se

10/08/2010

1

Tema 3: Software operativo y de

desarrollo

MI Elizabeth Fonseca Chávez

FI UNAM

Objetivo:

• El alumno conocerá y entenderá la evolución

del software y la situación actual que éste

presenta.

• Asimismo distinguirá los diferentes tipos de programas (software) necesarios tanto para operar la máquina como para realizar desarrollos y aunado a esto tendrá las bases para seleccionar aquel software que le permita resolver un problema.

Evolución del software y su situación

actual

el software se clasifica generalmente en tres grandes rubros: sistemas operativos,

lenguajes de programación y programas de aplicación.

Tenemos software de base: sistemas operativos, lenguajes y traductores y

Software aplicativo: a la medida y de propósito general

La máquina analítica 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 máquina 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 requería un alambrado específico para cada aplicación. Imaginemos lo engorroso

que resultaba realambrar el circuito cada vez que cambiaba el uso del ENIAC.

ENIAC. para agilizar la labor del censo del año 1890 en plena revolución industrial

Historia del software

• 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 memoria, aportación popularmente atribuida a John von Neumann, precipitó el desarrollo de software. 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 programas a partir de programas. Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal más compactas que el binario. Otros como los ensambladores simplificaron más el proceso al reemplazar 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 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 de expresiones algebraicas.

Historia del software

Dicha traducción 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 aplicación saturaron los recursos de los equipos, imponiendo sus requerimientos en cuanto a velocidad, precisión en la aritmética y capacidad en los almacenamientos; los programas de servicio repercutieron en la evolución de la arquitectura de los equipos (hardware). Entre las aportaciones más notables, podemos citar el empleo de pilas y el reemplazo de referencias físicas por lógicas. Con la pila (Push Down List), se da lugar al manejo recursivo de los procesos. Por ejemplo, esto ocurre en una oficina administrativa, cuando se pospone la solución de un problema para resolver otro de mayor exigencia.

Page 2: Tema 3: presenta. desarrollo - Computacion para … · Algunos programas de servicio fueron simples cargadores que permitieron ... Dicha traducción se realiza con programas que se

10/08/2010

2

Lenguaje Ensamblador Historia del software

• El problema original se suspende y se aborda nuevamente cuando el de mayor exigencia ya ha sido resuelto. Con el reemplazo de referencias físicas por lógicas, se obtuvo un incremento más real que virtual de los recursos disponibles. Almacenamientos secundarios, registros operacionales, memoria virtual, memoria cache e hizo translapes(overlay), son algunas de las técnicas que emplean este concepto. El efecto es similar al de las operaciones bancarias nominales con que las instituciones de crédito prestan varias veces su capital. Los elementos aportados por los programas de servicio, al interrelacionarse configuran el sistema operativo con el cual se administran los recursos disponibles en las computadoras y se establecen líneas de producción para el proceso de programas con una mínima participación del operario: la automatización de la automatización. 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.

Definiciones• Sistema Operativo: El conjunto de programas

informáticos que permite la administración

eficaz de los recursos de una computadora.

Permite controlar las asignaciones de

memoria, ordenar las solicitudes al sistema,

controlar los dispositivos de entrada y salida,

facilitar la conexión a redes y el manejo de

archivos.

Sistemas operativos

• Windows, Unix, Linux, DOS, Mac OS, etc. Características básicas

En computadoras, el sistema operativo comienza a funcionar cuando finaliza el trabajo del BIOS al encenderse o reiniciar la computadora.

Los sistemas operativos poseen una interfaz que puede ser gráfica (GUI) o de texto (línea de comandos).

Los sistemas operativos forman una plataforma para que otros sistemas o aplicaciones la utilicen. Aquellas aplicaciones que permiten ser ejecutadas en múltiples sistemas operativos son llamadas multiplataforma.

La mayoría de los sistemas operativos actuales son también multiusuario, aunque existen los monousuario (por ejemplo, DOS)

También pueden clasificarse en multitarea o monotarea. Cada programa que se ejecuta en un sistema operativo, ya sea aplicación o servicio de fondo, es llamado proceso. (Windows emula la multitarea)

Los sistemas operativos pueden ser centralizados, si permiten utilizar recursos de una sola computadora, o distribuido si permiten utilizar recursos de más de una computadora al mismo tiempo.

Lenguajes

• Lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas.

Debe distinguirse de “lenguaje informático”, que es una definición más amplia, puesto estos incluyen otros lenguajes como son el HTML o PDF que dan formato a un texto y no es programación en sí misma.

• El programador es el encargado de utilizar un lenguaje de programación para crear un conjunto de instrucciones que, al final, constituirá un programa o subprograma informático.

Los lenguajes de programación pueden clasificarse según el paradigma que usan en: procedimentales, orientados a objetos, funcionales, lógicos, híbridos, etc.

Son ejemplos de lenguajes de programación: php, prolog, ASP, ActionScript, ada, python, pascal, c, basic, JAVA, JavaScript, etc.

Traductores

• es un software que toma como entrada un programa escrito en un código llamado fuente y genera como salida otro programa en un código llamado objeto.

• Algunos ejemplos de traductores son los compiladores (toma como entrada código en alto nivel y genera como salida código en bajo nivel), los interpretes (toma como entrada código en alto nivel y genera como salida un código intermedio), los preprocesadores (toma como entrada código en alto nivel y genera como salida código en alto nivel) y el ensamblador (toma como entrada código en ensamblador y genera como salida código en bajo nivel).

• Su estructura podria ser expresada de la siguiente manera:

• código fuente -→>> traductor -→> código objeto .

• Un intérprete es un programa que ejecuta un programa escrito en un determinado lenguaje examinando y ejecutando cada sentencia del programa una a una, por separado y sin realizar un proceso de compilación previo.

Page 3: Tema 3: presenta. desarrollo - Computacion para … · Algunos programas de servicio fueron simples cargadores que permitieron ... Dicha traducción se realiza con programas que se

10/08/2010

3

Situación Actual

• El desempeño de los proyectos de sistemas actualmente es: 26% de ellos son exitosos, un 46% son proyectos cuestionables y un 28% son proyectos fallidos, arrojando una cifra de 97 Miles de Millones de USD de desperdicio, (Standish Group International). Casi el 25% de los proyectos de software son cancelados por atraso o por salirse del presupuesto, o por tener una baja calidad, o por experimentar alguna combinación de ellos .

• Se han definido varios modelos basados en las experiencias exitosas de la Ingeniería de Software que sirven de guía para las mejoras y unifican los criterios de evaluación de las empresas. Las normas ISO de serie 9000, el modelo estadounidense conocido como CMM (Capability Maturity Model), el BOOTSTRAP (Estándar Europeo para Evaluación y Mejoras de Procesos de Desarrollo de Software) y la norma ISO 15504, conocida como SPICE, (Software ProcessImprovement and Capability determination) son los ejemplos más reconocidos de estos modelos.

Antes en México En México

• • La falta de especialización o enfoque de los competidores, en lo que respecta a servicios y a mercados.

• • La ausencia de estrategia referente al esquema con que venden los servicios (por proyectos o como mano de obra) y al lugar en que éstos se realizan (en las instalaciones de los clientes o fuera de ellas).

• • La diversidad de precios de cada tipo de servicio.

• • El manejo de los recursos humanos sin un enfoque estratégico.

• • La falta de empleo de buenas metodologías.

• • La ausencia generalizada de mecanismos para medir y evaluar el desempeño de las empresas. (ITAM 2008).

Software aplicativo: a la medida y de

propósito general

Software aplicativo: a la medida y de

propósito general

Page 4: Tema 3: presenta. desarrollo - Computacion para … · Algunos programas de servicio fueron simples cargadores que permitieron ... Dicha traducción se realiza con programas que se

10/08/2010

4

Software aplicativo: a la medida y de

propósito generalCuestionario de Examen3

• 1. ¿Donde, cuando y con quien se dice que comenzó la historia del software?

• 2.¿Que es un sistema operativo, un lenguaje y un traductor?

• 3. Diferencia entre software a la medida y de propósito general.

• 4. ¿Enumera los lenguajes desde que existieron?

• 4.¿ Cual es el beneficio del País con saber trabajar el software?