Software Cap 8

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

Software Cap.

Una computadora trabaja de acuerdo a un programa formado por una serie de


instrucciones ordenadas en una secuencia predeterminada, siendo cada instrucción
una orden especifica en las que se descompone un trabajo.

 Un programa se integra de un conjunto de operaciones que han de ejecutarse.


 Cada operación es una orden que se imparte a la computadora para ser
ejecutada.
 A través de las instrucciones se especifica lo que se va a hacer, cómo hacerlo y
lo que se va a usar para llevar a cabo la operación.

Uno o más programas constituyen un software. En una computadora convivirán


varios software de distintos desarrolladores destinados a diferentes necesidades.

El software puede ser clasificado según diferentes criterios, pero hay una división
básica:

1. Software de aplicación: destinado a cubrir aplicaciones generales para


cualquier usuario, o específicas de la organización y que hacen al giro de sus
negocios o actividades
2. Software de Sistema o de Base: se utiliza para la administración o gestión de
los recursos físicos del hardware de las computadoras, o para tareas generales
necesarias para el uso de dichos recursos.

Todo software debe ser desarrollado y para ello se requieren lenguajes de


programación que permitan definir los pasos o instrucciones para cumplir con una
tarea. Para una mayor facilidad, esos lenguajes tratan de ser cada vez más
amigables para el ser humano, lo que los aleja del lenguaje binario de máquina, que
es el único que puede ejecutar un procesador. En consecuencia, los traductores
(compaginadores, compiladores, intérpretes y entornos) permiten pasar de los
lenguajes simbólicos usados para la codificación, al lenguaje de máquina.

La propiedad intelectual y los derechos de autor incluyen el software y, por lo tanto,


no tener en cuenta este aspecto puede generar importantes inconvenientes legales y
económicos a la organización.
SOFTWARE DE APLICACIÓN

El software de aplicación es un conjunto de programas concebidos o creados para


atender trabajos generales o específicos del usuario, referidos al cumplimiento de
sus diversos objetivos. En cambio, el software de sistema o de base, actúa como
apoyo para que podamos usar la computadora.

La diferencia fundamental de este conjunto de programas con el software de sistema


o de base, radica en el hecho que usualmente estos últimos nos permitirán usar la
computadora, administrarla, mantenerla, pero en ningún caso realizar las tareas
cuyo objetivo dio origen a la incorporación de la computadora.

El software de aplicación necesita parte del software de sistema para ejecutarse en


la computadora. El usuario se relaciona con el software de aplicación que, a su vez,
utiliza los servicios del software de sistema (sistema operativo) para acceder al
hardware.

El software de aplicación puede ser dividido en:

1. De propósito general (tareas comunes para todo tipo de usuarios). Ejemplos:


los navegadores de internet, correo electrónico, procesadores de texto, software
para presentaciones, software para trabajo en grupo (groupware).
2. De propósito específico (tareas específicas del usuario). Ejemplos: las
aplicaciones ERP, CRM, SCM, BPM, HCM.

Las formas para obtener un software de aplicación pueden ser:

 Confeccionados especialmente para un usuario determinado: esta


alternativa ofrece la oportunidad de introducir en el software las características
propias de ese usuario determinado. Es decir, que los sistemas desarrollados “a
medida” se generan teniendo en cuenta las particularidades que esa aplicación
tiene para ese usuario. El desarrollo puede ser realizado internamente o
contratado a una organización externa. En ambos casos, tanto la propiedad del
software desarrollado como el código fuente y la documentación técnica interna,
deben quedar en manos de la empresa contratante.
 Incorporando paquetes pre planeados: los paquetes también se orientan a
aplicaciones específicas de los usuarios, pero son concebidos en forma
estándar. Se generan tomando en cuenta las características propias de la
aplicación para satisfacerla en sus requerimientos estándares, generales, sin
tener en consideración a usuarios en particular, con el fin de comercializar
múltiples copias.

Se trata de sistemas que, desde el punto de vista de los requerimientos de una


aplicación específica de un usuario determinado, podrían resultar menos
adaptados que los desarrollados especialmente, debido a que tienen en cuenta
menos características de cada usuario en particular. Son sistemas más
flexibles.

Ejemplos: Los paquetes de gestión (ERP), los de relacionamiento con los


clientes (CRM), los software integrados de oficina (MS Office, Open Office,
StarOffice de Sun, entre otros), de correo electrónico, navegadores de internet y
otros de uso corriente.

El modelo de negocios, tomado en cuenta en el desarrollo de un software


confeccionado para el usuario, es la necesidad especifica de ese usuario. En
cambio, en los sistemas pre planeados, el modelo tomado en cuenta resulta ser la
conjunción de los requerimientos generales que se persigue satisfacer con dicha
aplicación, independientemente del usuario particular.

Por supuesto que es posible una estrategia intermedia, tomando lo que me sirve de
un paquete y desarrollando complementos que permitan “personalizar” la aplicación
a las necesidades de los usuarios, o bien, contratando al desarrollador del paquete
para que “personalice” directamente el propio paquete.

SOFTWARE DE SISTEMA

Lo dividimos en 3 grandes grupos:

1. Sistema operativo
2. Software para desarrollo
3. Utilitarios

1. Sistema operativo

Los sistemas operativos son conjuntos de programas concebidos para efectuar la


administración o gestión de los recursos físicos de la computadora. El desarrollo y
evolución alcanzados en materia de sistema operativo llevó a simplificar el uso de la
computadora.
Hay muchos sistemas operativos, pero los más conocidos y difundidos son
Windows, Linux, UNIX, Mac OSX y Chrome OS. Y hay sistemas operativos
desarrollados especialmente para ser servidores de red, como Novell Netware o
Windows Server. En una red podrán convivir distintos sistemas operativos.

A un sistema operativo también se lo denomina “plataforma”. Cuando un software


funciona en distintas plataformas es multiplataforma. Para que un software “corra”
en una plataforma, su lenguaje de máquina debe poder ejecutarse en el procesador
(hay procesadores compatibles aún de distinto fabricante, y también procesadores
incompatibles, aún del mismo proveedor) y debe poder relacionarse y utilizar los
servicios del sistema operativo.

En una misma computadora pueden coexistir más de un sistema operativo, ya sea


en forma real como en forma virtual (si se utiliza un software de virtualización).

 Sistemas operativos reales: sólo uno de ellos queda en ejecución y para utilizar
otro es necesario reiniciar la computadora y seleccionarlo.
 De Virtualización: todos los sistemas operativos se encuentran activos al mismo
tiempo y no es necesario reiniciar para trabajar sobre alguno de ellos. Cada uno
de ellos se puede considerar como un equipo virtual diferente.

2. Software para desarrollo

Para el desarrollo de software existe un conjunto de softwares específicos que


permiten facilitar el proceso de construcción. Se utilizan lenguajes de programación
que resultan más sencillos de manejar por los desarrolladores, pero que deben ser
traducidos al lenguaje binario de máquina para poder ser efectivamente ejecutados.
Ejemplo de este tipo de software son los sistemas de administración de base de
datos que permiten definir, visualizar, modificar, copiar y manejar, entre otras
funciones, bases de datos. También existen muchas herramientas dedicadas al
desarrollo de software, como aquellas gráficas para documentación técnica, para
prueba, herramientas CASE (Computer Aided Software Engineering, es decir,
ingeniería de software asistida por computadora), etc.

3. Utilitarios

Los programas utilitarios son usados para cumplir un número de funciones que, por
estándares y repetitivas, resultan necesarias para cualquier usuario en tareas
relacionadas con el uso, diagnóstico y mantenimiento de la computadora. Algunos
vienen acompañando al sistema operativo; otros son de uso gratuito y pueden ser
bajados de internet, y otros son fácilmente adquiribles en cualquier negocio del ramo
o en la red.
Ejemplos: los antivirus, firewalls, antispyware, utilitarios de diagnóstico, de
información de hardware, monitores del hardware, monitores de red, la calculadora,
el explorador, inicializador de discos, el reorganizador de espacio en disco, el editor
de textos, reproductores de audio y video, etc.

Ejemplo Explorador: Este utilitario es uno de los más usados, permite visualizar el
contenido de directorio y subdirectorios, así como de otros equipos conectados en
red y características de configuración (panel de control). También nos permite
eliminar un archivo o renombrar un archivo; buscar, copiar archivos, ver sus
propiedades, abrirlos o ejecutarlos desde su interfase, etc.

SISTEMAS OPERATIVOS

Conjuntos de programas concebidos para efectuar la administración de los recursos


de la computadora. Se dividen en 2:

1. Residente, supervisor, monitor, ejecutivo, kernel o núcleo: se encuentran


residiendo permanentemente en la memoria principal (luego de efectuada la
carga inicial al prender la computadora) mientras la computadora esté
encendida.
2. Transientes: residen en memoria, sólo cuando se los necesita ejecutar,
encontrándose almacenados en unidades de memoria secundaria.

El sistema operativo tiene 2 objetivos básicos:

1. Facilitar el uso de la computadora, proporcionando servicios para la ejecución


de programas, es decir, obtener automáticamente el programa apropiado y
administrar los recursos de los procesos en ejecución.
2. Actuar como entorno de la aplicación, en el cual el programa es ejecutado,
administrando los recursos de una manera eficiente (supervisar las operaciones
de la computadora, determinar la asignación del procesador, administrar el uso
de la memoria principal, dirigir el desenvolvimiento de las operaciones de
entrada/ salida y del acceso a archivos).

Los componentes que conforman un sistema operativo materializan las siguientes


tareas en la ejecución de una aplicación:

 Carga de programas y componentes


 Administración y manejo de las unidades del hardware
 Administración y manejo de datos
 Comunicación de programa a programa
 Interfase hombre/máquina/sistema de aplicación
 Supervisión de la ejecución de los diferentes programas
 Alocación de programas/datos en la memoria
 Manejo de interrupciones
 Mantenimiento de flujo constante de trabajo a la computadora
 Tareas de comunicación de datos

Las funciones de un sistema operativo son:

 Carga inicial de los componentes residentes en la memoria principal


 Administración de memoria principal
 Administración del/los procesador/es
 Administración de los dispositivos de entrada/salida
 Administración de los procesos a ser ejecutados
 Administración de datos

 Multiprogramación. Multiprocesamiento

2 modalidades de trabajo, cuando se ejecutan varias tareas en forma concurrente:

a) Multiprogramación

Manejo casi simultáneo de 2 o más programas independientes, intercalando su


ejecución y compartiendo tiempos del procesador. El control de la ejecución de esta
intercalación lo realiza el sistema operativo.

Características generales:

 Intercalación: ya que más de un programa se encuentra cargado en la


memoria principal en condiciones de ejecutarse, ejecutándose o demorados.
Pero todos ellos compartiendo tiempos de procesador y asignaciones de
memoria.
 Instantaneidad: ya que se simula trabajar como si existiera un sólo programa
cargado de ejecución instantánea.
 Independencia: se trata de distintos programas, con distintas asignaciones de
memoria y de dispositivos de hardware.

Los sistemas operativos que trabajan en multiprogramación tienen forma de proteger


la memoria de trabajo de cada programa. Así se evita, por ejemplo, la destrucción de
instrucciones o datos. Su objetivo principal es el aprovechamiento del procesador,
permitiendo que varios programas o diferentes aplicaciones se estén ejecutando,
intercalándose y compartiendo tiempos. Minimizando los “tiempos de espera”. Por
ejemplo, cuando un programa espera datos que deben buscarse en un disco, el
sistema operativo asigna el procesador a otra tarea o programa.

b) Multiprocesamiento
Ampliar el concepto de un trabajo real en paralelo y a una ejecución simultanea de
programas obliga necesariamente la aplicación de más de un procesador.

De manera que el problema a resolver por el sistema operativo consistirá en asignar


una cantidad de procesadores N a una cantidad de programas M, donde
generalmente N < M, pero sabiendo que N > 1. El sistema operativo deberá asignar
cada procesador a los distintos programas sabiendo que contamos con más de un
procesador. Cuando un programa termina o se detiene, uno de los procesadores
queda disponible y se podrá asignar a otro programa o proceso.

 Funciones

El sistema operativo tiene a su cargo la administración de 5 elementos principales:

 Memoria principal Procesador/es


 Dispositivos de entrada/salida
 Procesos a ser ejecutados
 Datos

a) Administración de memoria

El supervisor del programa es el que se encargua de las tareas necesarias para la


administración de la memoria. La memoria virtual es la que utiliza actualmente la
gran mayoría de los sistemas operativos en uso.

Memoria Virtual

La memoria virtual es un espacio de direcciones virtuales en una unidad de


almacenamiento externo de acceso directo (disco magnético), cuyo tamaño máximo
está determinado por el esquema de direccionamiento del computador.

Si utilizamos memoria virtual, el espacio de direcciones utilizable por los programas


es aquel determinado por el tamaño de la memoria virtual implementada y no el
espacio de direcciones provisto por la memoria real disponible.

La memoria virtual no existe como una entidad física de memoria principal, las
instrucciones y datos de un programa referenciados por direcciones virtuales deben
ser contenidos en alguna ubicación física de memoria real para ser ejecutados; es
decir, que para su efectiva ejecución, los datos e instrucciones correspondientes
deben ser llevados de la memoria virtual a la memoria principal.

Los contenidos de la memoria virtual están divididos en porciones de tamaño fijo. No


es necesario que todo el programa esté en memoria en un momento dado. El
programa estará completo en la memoria virtual, pero en la memoria real sólo
estarán algunas secciones o páginas del mismo que irán cambiando a lo largo de su
ejecución. A su vez, la memoria real también está dividida en secciones de igual
tamaño que las páginas. Cuando se debe ejecutar un programa, éste es traído a la
memoria virtual, y las instrucciones y datos del programa son transferidos entre la
memoria virtual y la real de a una sección por vez, durante la ejecución del
programa.

b) Administración de procesador/es

La administración del los procesadores es una de las más importantes funciones del
sistema operativo. El programa supervisor es quien se encarga de manejar la
multiprogramación y el multiprocesamiento, a través de dos componentes:

1. Planificador, que se encarga de elegir el programa que se ejecutará en cada


oportunidad en que dicha selección sea necesaria.
2. Control de tráfico, manejo de las interrupciones (iniciación y terminación de
entrada/salida, por tiempo, falta de página, finalización de programa, etc.).

En general, el ordenamiento de asignaciones se organiza alrededor de una especie


de lista de aplicaciones, programas o módulos a ser ejecutados y que se encuentran
en distintos estados:

 Ejecutándose: significa que el programa se encuentra trabajando en ese


instante y usando el procesador.
 Listo para ejecutarse: significa que el programa se encuentra en condiciones de
ser ejecutado, esperando que se le asigne procesador.
 Detenido: significa que por alguna causa se encuentra a la espera de una
acción que cambie su estado de detención.

Ejemplo: cuando la página a utilizar no se encuentra en la memoria principal y debe


ser traída desde la memoria virtual; mientras se realiza esta tarea, el programa
estará́ en estado “detenido”. Al terminar la operación pendiente, el programa pasa a
estado “listo para ejecutarse”.

c) Administración de procesos a ser ejecutados

Para lograr un uso eficiente de los recursos del hardware, el sistema operativo debe
proveer los servicios necesarios para que se inicie la ejecución de los programas o
procesos indicados por el usuario. Esta interfase del sistema operativo con el
usuario es denominada Shell (caparazón) ya que esconde detalles del sistema
operativo.

Normalmente el usuario utilizará una interfase gráfica (GUI o Graphical User


Interfase) y con un simple doble click del mouse, iniciará la ejecución de un
programa. El sistema operativo deberá encargarse de cargarlo en la memoria
principal y preparar o asignar los recursos que utilizará la ejecución.

d) Administración de dispositivos de entrada/salida

 Administración de los dispositivos o unidades periféricas de entrada y salida.


 Impresora
 Discos y unidades lógicamente similares

e) Administración de datos

Estas funciones son cumplidas por el sistema operativo para determinadas formas
de organización de archivos, o bien, por los sistemas de administración de bases de
datos. Luego, el sistema operativo (los drivers) y los canales se encargarán del
manejo físico de la unidad de entrada/salida.

LENGUAJES DE PROGRAMACIÓN

Para desarrollar un programa hay que usar un lenguaje de programación. Un


procesador sólo puede ejecutar instrucciones que estén expresadas en lenguaje de
máquina. Cualquier otro lenguaje que utilicemos, necesariamente deberá ser
traducido a lenguaje de máquina para poder ser ejecutado.

1. Primera generación

 Es el lenguaje de máquina.
 Cada procesador puede ejecutar instrucciones únicamente en lenguaje de
máquina, también llamado código objeto o ejecutable.
 Cada tipo de procesador tiene su propio lenguaje de máquina.
 Puede haber procesadores compatibles entre sí, aún de distinto fabricante
(Intel y AMD), y también procesadores incompatibles, aún del mismo
proveedor.
 Característica básica de un programa escrito en lenguaje de máquina es
que resulta directamente ejecutable por el procesador y cada instrucción
debe corresponder a una unidad ejecutable y estar expresada en ese
lenguaje binario, incluso en las direcciones de memoria. (Era muy difícil).

2. Segunda generación

 Aparecieron los primeros lenguajes simbólicos, lenguajes ensambladores, o


también llamados, lenguajes simbólicos de bajo nivel.
 Cada instrucción escrita representaba una instrucción en lenguaje máquina,
pero en lugar de escribirse en binario o hexadecimal, los códigos de
instrucción eran nombres nemotécnicos y los datos se referenciaban con
nombres en lugar de sus direcciones de memoria.
 El programa escrito en lenguaje ensamblador se comenzó a denominar
código fuente y, como no era ejecutable directamente por el procesador, se
requería de un programa traductor que pasara cada instrucción en lenguaje
simbólico al equivalente en lenguaje de máquina.
 El nivel de detalle que alcanzaba la programación era importante y sujeta a
mayores errores.

3. Tercera generación de lenguajes

 Lenguajes simbólicos de alto nivel.


 Aparecieron distintos lenguajes como COBOL (orientado a aplicaciones
comerciales), FORTRAN (orientado a aplicaciones matemáticas o
ingenieriles), BASIC, RPG, Pascal, PL/1, o C.
 Son más cercanos al lenguaje humano, más fáciles para aprender y sus
instrucciones estaban más orientadas al tipo de aplicaciones a desarrollar, y
a una mayor facilidad y productividad en la escritura del código fuente.
 Una instrucción en lenguaje fuente (macroinstrucción) genera normalmente
varias instrucciones en lenguaje de máquina.
 Por sus características, fueron más transportables entre distintos
procesadores y sistemas operativos (con pocos cambios pero con
compiladores diferentes).

4. Cuarta generación (4GL)

 Son de aún más alto nivel, con menor cantidad de código fuente para
realizar una tarea.
 Algunos están asociados a sistemas de administración de bases de datos,
permitiendo crear una base de datos y las funciones necesarias para la
carga de datos y la emisión de informes, de una manera muy sencilla
(Access o FoxPro).
 La codificación es menos procedimental y de sintaxis más sencilla para el
ser humano. La facilidad de aprendizaje y utilización permite que usuarios
no especialistas puedan construir pequeñas aplicaciones usando algunos de
estos lenguajes.
 Podemos incluir en esta generación, los modernos lenguajes orientados a
objetos y visuales.

1. Lenguaje orientados a objetos:

 Característica principal: permiten la definición de objetos o clases, que


encapsulan datos y procedimientos, o métodos, en código
independiente que puede formar parte del ejecutable o ser un
ejecutable aparte y, fácilmente reutilizable.
 Ventajas (respecto a las tradicionales):

 Profundizan los principios de modularidad (los módulos de código


son más independientes).
 Posibilita una mayor reutilización (más independientes, biblioteca
de objetos probados y posibilidad de reutilización).
 Mejora la productividad (mayor reutilización implica menos cantidad
de código nuevo a escribir).
 Reduce errores (al reutilizar objetos ya probados y disminuir la
cantidad de código nuevo).
 Hace más sencilla su corrección (depuración).
 Facilita el mantenimiento del código fuente.

2. Lenguajes de programación visuales

 Permiten armar formularios con todos los controles necesarios, sin


necesidad de líneas de código. Los formularios típicos de Windows se
pueden diseñar seleccionado el tipo de control de una barra de
herramientas y “dibujando” la ubicación y tamaño, simplemente usando
el mouse.
 Se pueden mover muy fácilmente en el espacio del formulario y
asignarle contenido, color, letra y otras características modificando sus
propiedades, sin necesidad de líneas de código.
 Ventaja: aceleran en gran medida el armado de las interfases graficas
con los usuarios con mucha productividad, permitiendo ver en forma
inmediata el diseño del formulario, reduciendo la posibilidad de errores
y facilitando el mantenimiento.

3. Lenguajes de programación para el diseño de sitios Web

 Desde el muy simple HTML hasta PHP o Java.


 Éstos lenguajes multiplataforma tienen como objetivo que cualquier
navegador de internet pueda ejecutarlos.
COMPILADORES, INTÉRPRETES Y ENTORNOS

1. Compaginadores

Primeros traductores que surgieron. Debido a las características de los lenguajes de


bajo nivel, el compaginador primero realiza un control general de sintaxis en todo el
programa fuente:

 Si no hay errores: generaba la versión ejecutable de ese programa, traduciendo


una por una las instrucciones fuente.
 Si hay errores: los marcaba en un listado y no generaba el código ejecutable.

El proceso de traducción sólo debía volver a realizarse si se modificaba el código


fuente; mientras no haya modificaciones se reutilizaba el mismo archivo ejecutable
que había generado el compaginador y que tenía el programa en lenguaje de
máquina ejecutable.

2. Compiladores

Los lenguajes simbólicos de alto nivel utilizaron como traductores, los compiladores
o intérpretes. Los compiladores son traductores de características similares a los
compaginadores, sólo que asociados a lenguajes de alto nivel.

3. Intérpretes
Los intérpretes funcionan de manera diferente; la traducción y la ejecución se
realizan conjuntamente. Cada instrucción es analizada sintácticamente y, si es
correcta, es traducida y ejecutada antes de pasar a la siguiente instrucción. Si hay
un error, la ejecución es detenida. La instrucción traducida a lenguaje de máquina no
se guarda y no se genera un archivo con el programa en lenguaje de máquina. Si
una instrucción anteriormente traducida y ejecutada debe ser nuevamente
ejecutada, será traducida nuevamente. Además, el intérprete debe estar en memoria
todo el tiempo de la ejecución. Por ende, ocupan más memoria principal y es más
lenta.

También podría gustarte