1. Mario Alberto Domínguez Bobadilla
TAREA 2
27 De Agosto de 2013
SOFTWARE OPERATIVO Y DE
DESARROLLO
2. TEMA 3
SOFTWARE OPERATIVO Y DE DESARROLLO
Según la RAE, el software es un conjunto de programas, instrucciones y reglas
informáticas que permiten ejecutar distintas tareas en una computadora. En
computación, el software es todo programa o aplicación programado para realizar
tareas específicas. El término "software" fue usado por primera vez por John W.
Tukey en 1957.
Se considera que el software es el equipamiento lógico e intangible de un
ordenador. En otras palabras, el concepto de software abarca a todas las
aplicaciones informáticas, como los procesadores de textos, las planillas de
cálculo y los editores de imágenes.
El software, como programa, consiste en un código en un lenguaje
máquina específico para un procesador individual. El código es una secuencia de
instrucciones ordenadas que cambian el estado del hardware de
una computadora. El software se suele escribir en un lenguaje de programación de
alto nivel, que es más sencillo de escribir (pues es más cercano al lenguaje natural
humano), pero debe convertirse a lenguaje máquina para ser ejecutado.
El software es desarrollado mediante distintos lenguajes de programación, que
permiten controlar el comportamiento de una máquina. Estos lenguajes consisten
en un conjunto de símbolos y reglas sintácticas y semánticas, que definen el
significado de sus elementos y expresiones. Un lenguaje de programación permite
a los programadores del software especificar, en forma precisa, sobre qué datos
debe operar una computadora.
El software puede distinguirse en tres categorías: software de sistema, software de
programación y aplicación de software. De todas maneras esta distinción es
arbitraria y muchas veces un software puede caer una o varias categorías.
- Software de sistema: ayuda a funcionar al hardware y a la computadora. Incluye
el sistema
operativo,
controladores de dispositivos,
herramientas
de
diagnóstico, servidores, sistema de ventanas, utilidades y más. Su propósito es
evitar lo más posible los detalles complejos de la computación, especialmente
la memoria y
el
hardware.
3. - Software de programación: provee herramientas de asistencia al programador.
Incluye
editores
de
texto, compiladores, intérprete
de
instrucciones, enlazadores, debuggers,
etc.
- Software de aplicación: permite a los usuarios finales hacer determinadas tareas.
Algunos software de aplicación son los navegadores, editores de texto, editores
gráficos, antivirus, mensajeros, etc.
La industria del desarrollo de software se ha convertido en un protagonista
importante dentro de la economía global, ya que mueve millones de dólares al
año. La compañía más grande y popular del mundo es Microsoft, fundada en 1975
por Bill Gates y Paul Allen. Esta empresa logró trascender gracias a su sistema
operativo Windows y a su suite de programas de oficina Office
Software Base.
Es toda aquella parte lógica realizada generalmente por cada fabricante de
computadores o por casas especializadas en el desarrollo de software de base.
Este conjunto de programas tiene por función coordinar las diversas partes del
sistema computacional para hacerlo funcionar rápida y eficazmente, actuando
como mediadores entre los programas de aplicaciones y el hardware del sistema,
interpretando los requerimientos de cada programa que ingresa al sistema,
poniendo a su disposición cualquiera de los recursos que necesite (ya sean de
hardware, software o datos para producir los resultados deseados.) debido a la
estrecha relación que existe entre las características de un computador y su
software de base, no se puede concebir el uno sin el otro, a tal punto que
pareciera que el software es parte integrante del hardware.
El software de base se suele clasificar en:
a) Sistema Operativo
b) Utilitarios
c) Traductores de lenguajes
4. Sistema operativo
Los primeros sistemas (1945-1955) eran grandes máquinas operadas desde la
consola maestra por los programadores. Durante la década siguiente (1955-1965)
se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas
magnéticas, etc. Esto a su vez provocó un avance en el
software: compiladores, ensambladores, cargadores, manejadores de dispositivos,
etc.
Un sistema operativo es un programa o conjunto de programas que en un sistema
informático gestiona los recursos de hardware y provee servicios a los programas
de aplicación, ejecutándose en modo privilegiado respecto de los restantes
El conjunto de programas informáticos que permite la administración eficaz de los
recursos de una computadora es conocido como sistema operativo o software de
sistema. Estos programas comienzan a trabajar apenas se enciende el equipo, ya
que gestionan el hardware desde los niveles más básicos y permiten además la
interacción con el usuario.
Cabe destacar que los sistemas operativos no funcionan sólo en las
computadoras. Por el contrario, este tipo de sistemas se encuentran en la mayoría
de los dispositivos electrónicos que utilizan microprocesadores: el software de
sistema posibilita que el aparato cumpla con sus funciones (por ejemplo, un
teléfono móvil o un reproductor de DVD).
El sistema operativo cumple con cinco funciones básicas: el suministro de interfaz
al usuario, la administración de recursos, la administración de archivos, la
administración de tareas y el servicio de soporte y utilidades.
En cuanto a la interfaz al usuario, el sistema se encarga de que el sujeto pueda
cargar programas, acceder a archivos y realizar otras tareas con la computadora.
La administración de recursos permite la dirección del hardware, incluyendo los
periféricos y la red. El software de sistema también se encarga de la gestión de
archivos, al controlar la creación, la eliminación y el acceso a los mismos, y de la
administración de las tareas informáticas que llevan adelante los usuarios finales.
Por último, podemos mencionar que el servicio de soporte se encarga de
actualizar las versiones, mejorar la seguridad del sistema, agregar nuevas
utilidades, controlar los nuevos periféricos que se agregan a la computadora y
corregir los errores del software.
5. Los sistemas operativos proporcionan una plataforma de software encima de la
cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones
se programan para que funcionen encima de un sistema operativo particular, por
tanto, la elección del sistema operativo determina en gran medida las aplicaciones
que puedes utilizar.
Los sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows,
pero hay otros que también se utilizan, como por ejemplo Linux.
Un usuario normalmente interactúa con el sistema operativo a través de un
sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos
como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos
son aceptados y ejecutados por una parte del sistema operativo llamada
procesador de comandos o intérprete de la línea de comandos. Las interfaces
gráficas permiten que utilices los comandos señalando y pinchando en objetos que
aparecen en la pantalla.
Generaciones de los sistemas operativos
La primera generación (1945-1955) corresponde a los primeros equipos,
construidos con válvulas de vacío. En esta etapa no existieron sistemas
operativos.
La segunda generación (1955-1965) corresponde a la etapa a los equipos que
estaban basados en el uso de los transistores. Eran más confiables y más
duraderos. Desde el punto de vista de los sistemas operativos se tiene el uso de
monitores simples (lo que implica procesamiento en lote). Sistemas de Operación
de esta etapa son el FMS (Fortran Monitor System) y el IBSYS de la 7094.
La tercera generación (1965-1980) se caracterizó por la utilización de circuitos
integrados. Los sistemas operativos vinculados a esta etapa introdujeron los
conceptos de SPOOLING y en especial el uso de la multiprogramación. También
corresponde a esta etapa la aparición del tiempo compartido. En esta etapa no
pueden dejar de mencionarse los sistemas de operación OS/360 y Multics. Aquí
surgen las primeras versiones del Unix.
6. La cuarta generación (1980-1990) surge con los circuitos integrados de alta
integración y por ello aparecen en el mercado las computadoras personales. Esta
etapa la dominan sistemas operativos MS-DOS y el Unix (y en un inicio el CP/M).
El actual desarrollo de los sistemas operativos basados en GUI (Graphic User
Interface) y la incorporación de orientación a objetos así como el soporte de la
multimedia, es suficientemente fuerte para hablar de la quinta generación de los
sistemas operativos.
Lenguajes De Programación
Un lenguaje de programación es un lenguaje que puede ser utilizado para
controlar el comportamiento de una máquina, particularmente una computadora.
Consiste en un conjunto de reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos, respectivamente. Aunque muchas
veces se usa lenguaje de programación y lenguaje informático 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.
Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones
ejercen un control directo sobre el hardware y están condicionados por la
estructura física de la computadora que lo soporta.
Un lenguaje de programación de alto nivel se caracteriza por expresar
los algoritmos de una manera adecuada a la capacidad cognitiva humana, en
lugar de a la capacidad ejecutora de las máquinas.
Otra limitación de los lenguajes de nivel bajo es que se requiere de ciertos
conocimientos de programación para realizar las secuencias de instrucciones
lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese
solucionar un problema de procesamiento de datos de una manera más fácil y
rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de
programación que evitaba estos inconvenientes, a costa de ceder un poco en las
ventajas. Estos lenguajes se llaman de tercera generación o de nivel alto, en
contraposición a los de bajo nivel o de nivel próximo a la máquina.
7. Se pueden clasificar según la forma de ejecución:
Los lenguajes de programación generalmente se dividen en dos grupos principales
en base al procesamiento de sus comandos:
lenguajes imperativos;
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en
bloques y compuestos de órdenes condicionales que permiten al programa
retornar a un bloque de comandos si se cumple la condición. Estos fueron los
primeros lenguajes de programación en uso y aún hoy muchos lenguajes
modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad
debido a la secuencialidad de las instrucciones.
lenguajes funcionales.
Un lenguaje
de
programación
funcional(a
menudo
llamado lenguaje
procedimental) es un lenguaje que crea programas mediante funciones, devuelve
un nuevo estado de resultado y recibe como entrada el resultado de otras
funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.
Los lenguajes de programación pueden, en líneas generales, dividirse en dos
categorías:
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por
lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un
programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el
intérprete), que traduce los comandos de los programas según sea necesario.
Lenguaje compilado
Un programa escrito en un lenguaje "compilado" se traduce a través de un
programa anexo llamado compilador que, a su vez, crea un nuevo archivo
independiente que no necesita ningún otro programa para ejecutarse a sí mismo.
Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un
programa anexo para ser ejecutado una vez que ha sido compilado. Además,
como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
8. Sin embargo, no es tan flexible como un programa escrito en lenguaje
interpretado, ya que cada modificación del archivo fuente (el archivo comprensible
para los seres humanos: el archivo a compilar) requiere de la compilación del
programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad
del código fuente. En efecto, el lenguaje interpretado, al ser directamente un
lenguaje legible, hace que cualquier persona pueda conocer los secretos de
fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo.
Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por
otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código
para evitar las copias ilegales (transacciones bancarias, pagos en línea,
comunicaciones seguras...).
ALGUNOS LENGUAJES DE PROGRAMACIÓN
Lenguaje
Principal área de aplicación
Compilado/interpretado
ADA
Tiempo real
Lenguaje compilado
BASIC
Programación para fines educativos
Lenguaje interpretado
C
Programación de sistema
Lenguaje compilado
C++
Programación de sistema orientado
Lenguaje compilado
a objeto
Cobol
Administración
Lenguaje compilado
Fortran
Cálculo
Lenguaje compilado
Java
Programación orientada a Internet
Lenguaje intermediario
MATLAB
Cálculos matemáticos
Lenguaje interpretado
Cálculos
matemáticos
Cálculos matemáticos
Lenguaje interpretado
LISP
Inteligencia artificial
Lenguaje intermediario
Pascal
Educación
Lenguaje compilado
PHP
Desarrollo de sitios web dinámicos
Lenguaje interpretado
9. Inteligencia artificial Inteligencia artificial
Perl
Procesamiento
caracteres
de
Lenguaje interpretado
cadenas
de
Lenguaje interpretado
TRADUCTORES DE LENGUAJE
Un traductor es un programa que recibe como entrada código escrito en un cierto
lenguaje y produce como salida código en otro lenguaje. Generalmente el lenguaje
de entrada es de más alto nivel que el de salida. Ejemplos de traductores son los
ensambladores y los compiladores. Un ensamblador es un programa que traduce
de un lenguaje ensamblador a lenguaje máquina, mientras que un compilador es
un programa que traduce de un lenguaje de alto nivel a un lenguaje de bajo nivel o
a lenguaje máquina. Un traductor es un programa que toma el texto escrito en un
lenguaje (el lenguaje fuente) y lo convierte en el texto equivalente en un segundo
lenguaje (el lenguaje destino u objeto). Si el fuente es un lenguaje abstracto o de
alto nivel y si el objetivo es un lenguaje de ensamble de bajo nivel o de máquina,
el traductor es un compilador.
Los programas traductores de lenguajes son:
1. Compiladores.
Un compilador es un programa informático que traduce un programa escrito en un
lenguaje de programación a otro lenguaje de programación, generando un
programa equivalente que la máquina será capaz de interpretar. Usualmente el
segundo lenguaje es lenguaje de máquina, pero también puede ser un código
intermedio (bytecode), o simplemente texto
2. Interpretes.
Es un programa informático capaz de analizar y ejecutar otros programas, escritos
en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en
que mientras estos traducen un programa desde su descripción en un lenguaje de
programación al código de máquina del sistema, los intérpretes sólo realizan la
traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y
normalmente no guardan el resultado de dicha traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales
incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3).
Usando un compilador, un solo archivo fuente puede producir resultados iguales
solo si es compilado a distintos ejecutables específicos a cada sistema.
10. Los programas interpretados suelen ser más lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son más
flexibles como entornos de programación y depuración (lo que se traduce, por
ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o
añadir módulos completamente nuevos), y permiten ofrecer al programa
interpretado un entorno no dependiente de la máquina donde se ejecuta el
intérprete, sino del propio intérprete (lo que se conoce comúnmente como
máquina virtual).
SOFTWARE APLICATIVO: A LA MEDIDA Y HECHO A LA MEDIDA
El software de aplicación es un conjuntó de programas que fueron concebidos o
creados para atender trabajos específicos de algún usuario. Estos pueden incluir
características que bien, pueden satisfacer las necesidades de forma total o
parcial, que pudieron haber sido definidos por los mismos. Generalmente todos
requieren de un servicio de Software base, con el cual podrán ser ejecutados, pero
existe la posibilidad de ejecutarlos sin esta base, lo cual implica un mayor costo y
complejidad en el desarrollo Estos pueden ser sistemas de aplicación
confeccionados especialmente para un usuario determinado (hecho a la medida) o
sistemas de aplicación pre-planeados (enlatados).
Hecho a Medida
Estos ofrecen la oportunidad de personalizar ciertos parámetros según el
esquema con el que el usuario lo este trabajando, teniendo en cuenta las
características que esta aplicación tenga para el usuario, por esto, al cumplir con
los requerimientos necesarios, requiere la disponibilidad de recursos para
desarrollarlo.