Tema 3: Software operativo y de
desarrollo
MI Elizabeth Fonseca Chávez
FI UNAM
2010-2
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.
Lenguaje Ensamblador
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.
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.
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 Process
Improvement 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
Software aplicativo: a la medida y de
propósito general
Cuestionario 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?
Descargar

Tema 3: Software operativo y de desarrollo